anchor.diff:      _frameRequested = false;
       requestFrame();
     }
  -
  -  void _canvas_mouseMove(MouseEvent e){
  -    _setMouse(getMouseEventCoordinate(e));
  -  }
  -
  -  void _canvas_mouseOut(MouseEvent e){
  -    _setMouse(null);
  -  }
  -
  -  void _setMouse(Coordinate value) {
  -    _mouseLocation = value;
  -    final hits = Mouse.markMouseOver(_stage, _mouseLocation);
  -    if(hits != null && hits.length > 0 && hits[0] is ImageThing) {
  -      _overShape = true;
  -    } else {
  -      _overShape = false;
  -    }
  -    requestFrame();
  -  }
   }
   
   class _DemoValue extends SendPortValue<List<int>, int> {
  
positive.code:   final CanvasElement _canvas;
    final Stage _stage;
    final AffineTransform _tx;
    final Dragger _dragger;
    final _DemoValue _demoMapper;
  
    Coordinate _mouseLocation;
    bool _frameRequested = false;
    bool _overShape = false;
  
    factory DraggerDemo(CanvasElement canvas){
  
  
negative.code:     rootPanel.add(image);
  
      var stage = new Stage(canvas, rootPanel);
  
      return new DraggerDemo._internal(canvas, stage, tx, image);
    }
  
    DraggerDemo._internal(this._canvas, this._stage, this._tx, this._thing) :
      _demoMapper = new _DemoValue() {
  
      _demoMapper.outputChanged.add((e) => requestFrame());
  
      _stage.invalidated.add(_onStageInvalidated);
  
      final cm = new ClickManager(_stage);
  
      ClickManager.setDraggable(_thing, true);
      ClickManager.addDragHandler(_thing, _onDrag);
    }
  
    void requestFrame(){
  