protected void updateCrawlers() {
    //
    //  Cull all any destroyed crawlers-
    for (DustCrawler c : crawlers) if (c.destroyed()) {
      if (verbose) I.sayAbout(c, c+" was destroyed!") ;
      crawlers.remove(c) ;
    }
    //
    //  Update the proper number of automated crawlers.
    final int numCrawlers = (1 + structure.upgradeLevel(DUST_PANNING)) / 2 ;
    if (verbose) I.sayAbout(this, "Proper no. of crawlers: "+numCrawlers) ;
    if (crawlers.size() < numCrawlers) {
      final DustCrawler crawler = new DustCrawler() ;
      crawler.enterWorldAt(this, world) ;
      crawler.goAboard(this, world) ;
      crawler.setHangar(this) ;
      crawlers.add(crawler) ;
    }
    if (crawlers.size() > numCrawlers) {
      for (DustCrawler c : crawlers) if (c.aboard() == this) {
        if (verbose) I.sayAbout(this, "Too many crawlers.  Salvaging: "+c) ;
        //  TODO:  PERFORM ACTUAL CONSTRUCTION/SALVAGE
        c.setAsDestroyed() ;
        crawlers.remove(c) ;
        return ;
      }
    }
  }