refactored #game_state_for