Second major refactoring on GameState