anchor.diff:              querySelector("#contents").append(redo);
               redo.onClick.listen((e) => redoFunction());
           }
  +    }
  +
  +    HomestuckGrubDoll makeGrub() {
  +        HomestuckGrubDoll grub = new HomestuckGrubDoll();
  +        Doll.convertOneDollToAnother(doll, grub);
  +
  +        grub.canonSymbol.imgNumber = 0;
  +        grub.symbol.imgNumber = 0;
  +        grub.pickCasteAppropriateBody();
  +        return grub;
       }
   
   
  
positive.code:         });
  
          if(doll is HatchableDoll) {
  
              Doll newDoll = (doll as HatchableDoll).hatch();
  
              hatchLink = new AnchorElement(href:"${window.location.origin}${window.location.pathname}?${newDoll.toDataUrlPart()}" );
  
negative.code:             hatchLink.href = "${window.location.origin}${window.location.pathname}?${(doll as HatchableDoll).hatch().toDataUrlPart()}";
          }
  
          if(grubLink != null && doll is HomestuckTrollDoll) {
              HomestuckGrubDoll grub = makeGrub();
              grubLink.href = "${window.location.origin}${window.location.pathname}?${grub.toDataUrlPart()}" ;
          }
  
  
          //don't add it to the queue if you're already messing around in it, dunkass. you'll never escape the loop.
          if(!inQueue) {
  