communication logic