anchor.diff:      // do actual start in case we were pending before
       _pendingToDrag();
       
  -    // call the drag in callback
  -    if(dragOver != null) {
  -      dragOver(this, event.currentTarget, event);
  -    }
  +    // send over event
  +    _dragOverStreamController.add(new DragEvent(this, event.currentTarget, event));
     }
     void _mouseOutHandler(MouseEvent event) {
       // only respond to this event when the element we're going to is
  
positive.code:     // signal that we are no longer dragging
      _dragging = false;
      
      // TODO if callbacks are set to null during a drag,
      // they will never be removed. we should define a setter that checks
      
      // TODO if elements are changed during a drag, they won't be removed either
      
      // remove callbacks
      if(drag != null) {
        // TODO this can just be paused
        // TODO as Element?
        _cancel("mouseMove", document);
      }
      if(dragOver != null) {
        for(Element e in _targets) {
          _cancel("mouseOver", e);
        }
      }
      if(dragOut != null) {
        for(Element e in _targets) {
          _cancel("mouseOut", e);
        }
      }
      
      // call the end callback
      // only do callback if we weren't just pending
      if(dragEnd != null && !_dragStartPending) {
        dragEnd(this, _currentTarget, event);
      }
      
      // clear current target
  
negative.code:     // do actual start in case we were pending before
      _pendingToDrag();
      
      // send out event
      _dragOutStreamController.add(new DragEvent(this, event.currentTarget, event));
    }
    void _mouseMoveHandler(MouseEvent event) {
      // do actual start in case we were pending before
      _pendingToDrag();
  
      // send drag event
      _dragStreamController.add(new DragEvent(this, _currentTarget, event));
    }
    
    // the method that will be called on mouse up events when autostop is on
    void _autoStopUpHandler(MouseEvent event) {
      // stop the drag
      // only call if we are currently dragging and enabled
      if((_dragStartPending || _dragging) && enabled) {
  