refactoring heuristic val and Game.run