anchor.diff:  
   		return lovedOnes;
   	}
  -	dynamic findAllDeadHatedOnes(player){
  +	dynamic findAllDeadHatedOnes(Player player){
   		List<Player> hatedOnes = [];
  -    List<Player> clubs = player.getClubs();
  -    List<Player> spades = player.getSpades();
  -    List<Player> crushes = player.getBlackCrushes();
  +    List<Player> clubs = player.getClubs().map((Relationship r) =>r.target);
  +    List<Player> spades = player.getSpades().map((Relationship r) =>r.target);
  +    List<Player> crushes = player.getBlackCrushes().map((Relationship r) =>r.target);
   		List<Player> relationships = new List<Player>();
   		relationships.addAll(spades);
   		relationships.addAll(clubs);
  
positive.code: 		}
  		return bestCanidate; //no way to know for SURE this is the most recent ghost...but...PRETTY sure???
  	}
  	List<Player> findAllAlternateSelves(player){
  		List<Player> selves = [];
  		for(num i = 0; i<this.ghosts.length; i++){
  			var ghost = this.ghosts[i];
  
negative.code: 
  		return hatedOnes;
  	}
  	dynamic findAssholeSpirit(Player player){
  		return player.rand.pickFrom(this.findAllDeadEnemies(player));
  	}
  	dynamic findFriendlySpirit(Player player){
  		return player.rand.pickFrom(this.findAllDeadFriends(player));
  	}
  	bool areTwoPlayersTheSame(Player player1, Player player2){
  		return player2.id == player1.id ;   //if they STILL match, well fuck it. they are the same person just alternate universe versions of each other.;
  	}
  	dynamic findClosesToRealSelf(Player player){
  		var selves = this.findAllAlternateSelves(player);
  		if(selves.length == 0) return null;
  		num bestCanidateValue = 9999999;
  