Multiplayer refactor