Refactor ClientConnection into Connection. Can be one implementation.