Many functions that operate on a player entity instead receive bags of primitives (e.g. addPlayerWithTeam(socket, username, roomID, teamNumber)) or use a different entity that has a 1:1 relationship with a player (e.g. removePlayer(socket)). It would simplify a lot of things to consistently pass around Player objects instead of operating on different variables relating to Players.