public void updateAsScheduled(int numUpdates) {
    if (numUpdates % 10 == 0 && structure.intact()) {
      HoldingExtra.updateExtras(this, extras, numUpdates) ;
    }
    super.updateAsScheduled(numUpdates) ;
    
    if (! structure.intact()) return ;
    consumeMaterials() ;
    updateDemands(upgradeLevel + 1) ;
    impingeSqualor() ;

    final int CHECK_TIME = 10 ;
    if (numUpdates % CHECK_TIME == 0) checkForUpgrade(CHECK_TIME) ;
    
    if (
      (targetLevel != upgradeLevel) &&
      (! structure.needsUpgrade()) &&
      structure.goodCondition()
    ) {
      upgradeLevel = targetLevel ;
      structure.updateStats(HoldingUpgrades.INTEGRITIES[targetLevel], 5, 0) ;
      world.ephemera.addGhost(this, MAX_SIZE, sprite(), 2.0f) ;
      attachModel(modelFor(this)) ;
      setAsEstablished(false) ;
    }
  }