communication functionality part 2

everything should be the same as before