GameState abstract class