anchor.diff:      }
       _rollCompleter = new Completer<String>();
       
  -    update(0);
  +    Future.wait([_successSource.onLoad.first, _failureSource.onLoad.first])
  +    .then((_) {
  +      update(0);
  +    });
       
       return _rollCompleter.future;
     }
  
positive.code:   bool isSlowingDown = false;
    bool isFinished = false;
    
    final CanvasImageSource successSource= 
        new ImageElement(src: "packages/slot_machine/img/slot-success.gif", 
            width: 40, height: 40);
    final CanvasImageSource failureSource = 
        new ImageElement(src: "packages/slot_machine/img/slot-failure.gif", 
            width: 40, height: 40);
    
    num _pos = 0;
    
  
negative.code:   final CanvasRenderingContext2D _ctx;
    
    _SlotMachineLine(this.probability, this._ctx, this.leftOffset,
        this.width, this.height, this.successSource, this.failureSource) {
      _values = new List<bool>.filled(SLOT_COUNT, false);
      
      int successValuesTarget = (SLOT_COUNT * probability).round();
  