anchor.diff:        }
         landTargets.addAll(session.moons);
   
  -      livingTargets = shuffle(session.rand, livingTargets);
  -      landTargets = shuffle(session.rand, landTargets);
  +      livingTargets = new Set<GameEntity>.from(shuffle(session.rand, new List<GameEntity>.from(livingTargets)));
  +      landTargets = new Set<Land>.from(shuffle(session.rand, new List<Land>.from(landTargets)));
   
   
         for(TargetConditionLiving tc in triggerConditionsLiving) {
  -          livingTargets = tc.filter(livingTargets);
  +          livingTargets = new Set.from(tc.filter(new List<GameEntity>.from(livingTargets)));
         }
         if(triggerConditionsLiving.isEmpty) livingTargets.clear();
   
   
         for(TargetConditionLand tc in triggerConditionsLand) {
  -          landTargets = tc.filter(landTargets);
  +          landTargets = new Set.from(tc.filter(new List<Land>.from(landTargets)));
         }
         if(triggerConditionsLand.isEmpty) landTargets.clear();
   
  
positive.code:     //if i some how have both, living target will be the one i pick.
      String getTargetNames() {
        if(livingTargets.isNotEmpty) {
            return turnArrayIntoHumanSentence(finalLivingTargets);
        }else {
            return turnArrayIntoHumanSentence(finalLandTargets);
        }
  
    }
  
negative.code:       posedAsATeamAlready = false;
        landTargets.clear();
        livingTargets.clear();
        livingTargets = new Set<GameEntity>.from(session.activatedNPCS); //not all, just active
        //TODO should i also get party members for those npcs? otherwise can't get brain ghosts and robots and the like
        for(Player p in session.players) {
              if(p.active) {
  