anchor.diff:      _targets.add(element);
       // if size is bigger, the element is new, so add down handler
       if(_targets.length > oldSize && enabled) {
  -      element.on.mouseDown.add(_mouseDown);
  +      _listen("mouseDown", element);
         // if dragging or pending, add event handlers to the new element
         if(_dragging || _dragStartPending) {
           if(dragOver != null) {
  -          element.on.mouseOver.add(_mouseOver, true);
  +          _listen("mouseOver", element, true);
           }
           if(dragOut != null) {
  -          element.on.mouseOut.add(_mouseOut, true);
  +          _listen("mouseOut", element, true);
           }
         }
       }
  
positive.code:     
      // remove callbacks
      if(drag != null) {
        document.on.mouseMove.remove(_mouseMove);
      }
      if(dragOver != null) {
        for(Element e in _targets) {
          e.on.mouseOver.remove(_mouseOver, true);
        }
      }
      if(dragOut != null) {
        for(Element e in _targets) {
          e.on.mouseOut.remove(_mouseOut, true);
        }
      }
      
  
negative.code:       if(enabled) {
          // add mouse down handlers to the targets
          for(Element t in _targets) {
            _listen("mouseDown", t);
          }
        } else {
          // remove mouse down handlers from the targets
          for(Element t in _targets) {
            _cancel("mouseDown", t);
          }
        }
      }
  