Introduce PlayerCommunicator
idea: separate the socket layer via this later