cleaned up GamePhase and subclass structure