flexible two-level communication layer