Refactor client and client (socket) handler to clarify each class's
responsibility