added communicator class