Refactoring to GameMonitor and GameStateMonitor