protected static Fauna nextHandled(SurveyStation station) {
    for (Item match : station.stocks.matches(REPLICANTS)) {
      if (match.refers instanceof Fauna) return (Fauna) match.refers ;
    }
    
    final World world = station.world() ;
    final Tile e = world.tileAt(station) ;
    //final Ecology ecology = world.ecology() ;
    Fauna picked = null ;
    float bestRating = 0 ;
    
    for (Species species : Species.ANIMAL_SPECIES) {
      final float crowding = Nest.crowdingFor(station, species, world) ;
      I.say("Abundance of "+species+" is "+crowding) ;
      if (crowding >= 1) continue ;
      final Fauna specimen = species.newSpecimen() ;
      if (specimen == null) continue ;
      float rating = 10f / (1 + crowding) ;
      if (rating > bestRating) {
        I.say("Best is: "+species) ;
        picked = specimen ;
        bestRating = rating ;
      }
    }
    
    if (picked == null) return null ;
    picked.setPosition(e.x, e.y, world) ;
    I.say("Next fauna to breed is: "+picked) ;
    return picked ;
  }