isolate chat logic from view by means of the IChatView protocol
split client code into separate view and controller modules
alternative view implementation using Reagent, a facebook React interface