Changed a few things to do with the client & server to take a session factory instead and not have so many abstract methods -- instead, uses session factory to add listeners as needed, which I think is cleaner. still WIP on relay stuff