communicator updated to be more independent