misspelling
add interface ICommunicator

to represent communicators. Rename class Communicator to
CommunicatorFactory