implement communication