Add some caching for GameState