communication should maybe be renamed to communicator?