anchor.diff:  
     @override
     void update(double dt) {
  +    _updateStats(dt);
  +    // Note: It isn't very efficient to remap inside an update().
  +    // We should only remap when things change, like an Actor moving.
  +    remap();
  +  }
  +
  +  void remap() {
  +    GameManager gm = GameManager.instance;
  +    TriangleShip triShip = gm.triShip;
  +    
  +    // Map ship's position from ship-space to Hud-space via world-space.
  +    Ranger.Vector2P pw = gm.zoomControl.convertToWorldSpace(triShip.position);
  +    Ranger.Vector2P hudP = convertWorldToNodeSpace(pw.v);
  +    shipHudPosition.setFrom(hudP.v);
  +    
  +    _centerZone.updateState(shipHudPosition);
  +    
  +    pw.moveToPool();
  +    hudP.moveToPool();
  +  }
  +
  +  void _updateStats(double dt) {
       Ranger.Application app = Ranger.Application.instance;
       if (app.updateStats) {
         // Update FPS text
  
positive.code:   Ranger.OverlayLayer _loadingOverlay;
    Ranger.SpriteImage _overlaySpinner;
  
    HudLayer();
  
    factory HudLayer.asTransparent([bool centered = true, int width, int height]) {
  
negative.code: 
      _loadingOverlay.addChild(_overlaySpinner);
    }  
  
    void _configureZones() {
      Ranger.Application app = Ranger.Application.instance;
  
      Ranger.Size size = contentSize;
      double minS = min(size.width, size.height) / 2.0;
      centerZoneRadius = minS - (minS * 0.5);
      
      _centerZone = new SingleRangeZone.initWith(Ranger.Color4IOrange, centerZoneRadius);
      
      _centerZone.uniformScale = centerZoneRadius;
      _centerZone.iconsVisible = false;
      _centerZone.emitContinuosOutside = true;
      _centerZone.zoneId = 1;
      addChild(_centerZone, 12, 930);
      
      _centerZoneSubscription = app.eventBus.on(SingleRangeZone).listen(
      (SingleRangeZone zone) {
        _singleRangeZoneAction(zone);
      });
    }
  
    void toggleScrollZoneVisibility() {
      _centerZone.iconsVisible = !_centerZone.iconsVisible;
      
      if (_centerZone.iconsVisible)
        _messageText.text = "Scroll zone visual turned on";
      else
        _messageText.text = "Scroll zone visual turned off";
      
      animateMessage();
    }
    
    // This is called whenever the state of the Zone changes.
    // The state is updated during the update(dt) call.
    void _singleRangeZoneAction(SingleRangeZone zone) {
      switch (zone.action) {
        case SingleRangeZone.ZONE_INWARD_ACTION:
          _centerZone.outsideColor = Ranger.Color4IOrange.toString();
          damping += dampingFalloff;
          if (damping > DampingMax)
            damping = DampingMax;
          break;
        case SingleRangeZone.ZONE_OUTWARD_ACTION:
          _centerZone.outsideColor = Ranger.Color4IGoldYellow.toString();
          
          // When the ship leaves the zone area scroll Layer by a delta.
          // The delta is how much the ship is outside of the zone.
          GameManager gm = GameManager.instance;
  
          scrollDirection.setFrom(shipHudPosition);
          scrollDirection.sub(_centerZone.position).normalize();
          
          // In Hud-space. This would be mapped into game-space (aka subGroup-space)
          zoneEdgePosition.setFrom(_centerZone.position);
          zoneEdgePosition.addScaled(scrollDirection, _centerZone.radius);
          
          Ranger.Vector2P pw = convertToWorldSpace(zoneEdgePosition);
          Ranger.Vector2P zoomP = gm.zoomControl.convertWorldToNodeSpace(pw.v);
  
          scrollDirection.setValues(zoomP.v.x - gm.triShip.position.x, zoomP.v.y - gm.triShip.position.y);
          if (_dampingEnabled)
            scrollDirection.scale(damping);
  
          gm.zoomControl.translateBy(scrollDirection);
          
          damping -= dampingFalloff;
          if (damping < DampingMin)
            damping = DampingMin;
          
          pw.moveToPool();
          zoomP.moveToPool();
          break;
      }
    }
  
    int _loadImage(String resource, int width, int height, double px, double py, [bool simulateLoadingDelay = false]) {
      Ranger.Application app = Ranger.Application.instance;
  