Changed how Client and Server work, they are now protocols to be implemented by the actual client and server.