anchor.diff:    CharacterEasterEggEngine() {}
   
   
  -  dynamic loadArrayFromFile(arr, file, processForSim, callBack, that){
  +  dynamic loadArrayFromFile(arr, String file, processForSim, callBack, that){
       //print("loading" + file);
       var that = this;
  -    $.ajax({
  -      url: file,
  -      success:((data){
  -        that.parseFileContentsToArray(arr, data.trim());
  -        if(processForSim && callBack) return that.processForSim(callBack);
  -        if(!processForSim && callBack) callBack(that);  //whoever calls me is responsible for knowing when all are loaded.
  -
  -      }),
  -      dataType: "text"
  +    HttpRequest.getString(file).then((data) {
  +      // Do something with the response.
  +      parseFileContentsToArray(arr, data.trim());
  +      if(processForSim && callBack != null) return that.processForSim(callBack);
  +      if(!processForSim && callBack != null) callBack(that);  //whoever calls me is responsible for knowing when all are loaded.
       });
  -  }
  +
  +
  +  }
  +
  +
  +
     void parseFileContentsToArray(arr, fileContents){
       this[arr] = fileContents.split("\n");
       //print(arr);
  
positive.code:   }
    void loadArraysFromFile(callBack, processForSim, that){
      //too confusing trying to only load the assest i'll need. wait for now.
      this.loadArrayFromFile("redditCharacters","OCs/reddit.txt", processForSim);
      this.loadArrayFromFile("tumblrCharacters","OCs/tumblr.txt", processForSim);
      this.loadArrayFromFile("discordCharcters","OCs/discord.txt", processForSim);
      this.loadArrayFromFile("creditsBuckaroos","OCs/creditsBuckaroos.txt", processForSim);
      this.loadArrayFromFile("ideasWranglers","OCs/ideasWranglers.txt", processForSim);
      this.loadArrayFromFile("patrons","OCs/patrons.txt", processForSim);
      this.loadArrayFromFile("patrons2","OCs/patrons2.txt", processForSim);
      this.loadArrayFromFile("patrons3","OCs/patrons3.txt", processForSim);
      this.loadArrayFromFile("canon","OCs/canon.txt", processForSim);
      this.loadArrayFromFile("bards","OCs/bards.txt", processForSim);
      this.loadArrayFromFile("otherFandoms","OCs/otherFandoms.txt", processForSim,callBack,that) //last one in list has callback so I know to do next thing.
    }
    dynamic getPoolBasedOnEggs(){
      List<dynamic> pool = [];
      //first, parse url params. for each param you find that's right, append the relevant characters into the array.
      if(getParameterByName("reddit")  == "true"){
        pool.addAll(this.redditCharacters);
      }
  
      if(getParameterByName("tumblr")  == "true"){
        pool.addAll(this.tumblrCharacters);
      }
  
      if(getParameterByName("discord")  == "true"){
        pool.addAll(this.discordCharcters);
      }
  
      if(getParameterByName("creditsBuckaroos")  == "true"){
        pool.addAll(this.creditsBuckaroos);
      }
  
      if(getParameterByName("ideasWranglers")  == "true"){
        pool.addAll(this.ideasWranglers);
      }
  
      if(getParameterByName("bards")  == "true"){
        pool.addAll(this.bards);
      }
  
      if(getParameterByName("patrons")  == "true"){
        pool.addAll(this.patrons);
      }
  
      if(getParameterByName("patrons2")  == "true"){
        pool.addAll(this.patrons2);
      }
  
      if(getParameterByName("patrons3")  == "true"){
        pool.addAll(this.patrons3);
      }
  
      if(getParameterByName("canon")  == "true"){
        pool.addAll(this.canon);
      }
  
      if(getParameterByName("otherFandoms")  == "true"){
        pool.addAll(this.otherFandoms);
      }
  
  
      if(getParameterByName("creators")  == "true"){
        pool.addAll(this.creatorCharacters);
      }
  
  
negative.code:     }
  
      //return pool;
      return shuffle(rand, pool); //boring if the same peeps are always first.
  
    }
    dynamic processEasterEggsViewer(Random rand){
      var pool = this.getPoolBasedOnEggs(rand);
      return this.playerDataStringArrayToURLFormat(pool);
    }
    dynamic playerDataStringArrayToURLFormat(playerDataStringArray){
  