protected Behaviour getNextStep() {
    if (restPoint == null) return null ;
    if (restPoint instanceof Tile) {
      if (((Tile) restPoint).blocked()) return null ;
    }
    if (restPoint instanceof Venue && menuFor((Venue) restPoint).size() > 0) {
      if (actor.health.hungerLevel() > 0.1f) {
        final Action eats = new Action(
          actor, restPoint,
          this, "actionEats",
          Action.BUILD, "Eating at "+restPoint
        ) ;
        currentMode = MODE_DINE ;
        if (verbose) I.sayAbout(actor, "Returning eat action...") ;
        return eats ;
      }
    }
    //
    //  If you're tired, put your feet up.
    if (actor.health.fatigueLevel() > 0.1f) {
      final Action relax = new Action(
        actor, restPoint,
        this, "actionRest",
        Action.FALL, "Resting at "+restPoint
      ) ;
      currentMode = MODE_SLEEP ;
      return relax ;
    }
    return null ;
  }