protected Behaviour getNextStep() {
    if (actor.mind.home() == newHome) return null ;
    
    if (verbose) I.sayAbout(actor, "Getting next site action ") ;
    if (! newHome.inWorld()) {
      if (! canPlace()) { abortBehaviour() ; return null ; }
      final Tile goes = actor.world().tileAt(newHome) ;
      final Action sites = new Action(
        actor, Spacing.nearestOpenTile(goes, actor),
        this, "actionSiteHome",
        Action.LOOK, "Siting home"
      ) ;
      sites.setProperties(Action.RANGED) ;
      return sites ;
    }
    final Action finds = new Action(
      actor, newHome,
      this, "actionFindHome",
      Action.LOOK, "Finding home"
    ) ;
    return finds ;
  }