Some fixes to game modes
Refactor game mode system