anchor.diff:          });
       });
   
  +    fileElementTaint.onChange.listen((e) {
  +        List<File> loadFiles = fileElementTaint.files;
  +        File file = loadFiles.first;
  +        FileReader reader = new FileReader();
  +        reader.readAsDataUrl(file);
  +        print("the file was $file");
  +        reader.onLoadEnd.listen((e) {
  +            //sparse
  +            String loadData = reader.result;
  +            seed = loadData.length;
  +            //String old = chat.icon.src;
  +            image.src = loadData;
  +            button.text = "You're Not Strong Enough To Wake Up";
  +            button.disabled = true;
  +            initTaint();
  +        });
  +    });
  +
       dollUpload.onChange.listen((e) {
   
           button.text = "You're Not Strong Enough To Wake Up";
  
positive.code:       sacrificeCanvas.context2D.putImageData(boxImageData, 0,0);
    }
  
    @override
    void noise([int speed=1]) {
        /*
        TODO
         take in an image
  
negative.code: }
  
  class DreamTaint extends DreamDrawer {
      double currentThreshold = 1.0;
      CanvasElement debugCanvas;
      ImageData outputImageData;
    DreamTaint(CanvasElement image, CanvasElement canvas, CanvasElement this.debugCanvas, int imageWidth, int seed) : super(image, canvas, imageWidth, seed);
  
    //if you give me a canvas i will paint it black and make it gradient
    void coverWithAlphaGradient(CanvasElement sacrificeCanvas) {
          //TODO go through each pixel and make it solid black wiht an alpha value that slowly decreases based on y.
        //TODO play around with this later and make it procedural. can be circular or diagnoal or whatever
        sacrificeCanvas.context2D.fillRect(0,0, sacrificeCanvas.width, sacrificeCanvas.height); //make it a black box
  