Created a ClientManager which has an array of clients, it now creates the individual threads so that Server can just worry about listening for new ones. Client manager also controls all the client connections and will do scheduling for messages, we can set how often it will order a broadcast from the server.ClientConnection which no longer have loops in them.