contains a server and a client to talk to each other