Put the communicator in it's own file and added user tracking to it (comm.user)
Merge branch 'js'