Communicator object now works.

This includes basic functionality. I still need to do a proof read and
add comments before sending it through a review process however.