major game class refactor