refactor game struct