big GameModel refactoring to prepare for adding split functionality, doesn't compile