       // For now, we add things in order to get correct layering.
       add(bg);
       add(platform);
-      add(player);      
+      add(player);
+      
+      // Internals.
+      // Don't do expensive operations too often, if possible.
+      gameStatePollInterval = new FlxTimer();
+      gameStatePollInterval.start(2, Number.POSITIVE_INFINITY,
+        function(onTimer:FlxTimer):void {
+          updateGameState(true);
+        }
+      );
     }
     override public function update():void
     {

      // Tilemaps can be collided just like any other FlxObject, and flixel
      // automatically collides each individual tile with the object.
      FlxG.collide(player, platform);
      var pPos:FlxPoint = new FlxPoint(player.x, player.y);
      wrapToStage(player);
      var pos:FlxPoint = new FlxPoint(player.x, player.y);
      if (FlxU.getDistance(pos, pPos) > 0)
      {
        player.nextAction = Player.STOP;
      }
    }
    private function updateCamera(playerJustFell:Boolean):void

    // Some game switches.
    private var fallChecking:Boolean;
    
    // Internal helpers.
    private var gameStatePollInterval:FlxTimer;
    
    // Flixel Methods
    // --------------
    override public function create():void
