cleanup
Design for Testability.
added Junit Tests for Protocol. Therefore recfactured ClientConnection
into an Interface, to help with testing.