communication layer