anchor.diff:    }
   
     static void setClickable(Thing thing, bool value) {
  -    assert(thing != null);
  +    _setBoolProp(thing, _isClickableProperty, value);
  +  }
  +
  +  static bool getClickable(Thing thing) {
  +    assert(thing != null);
  +    return _isClickableProperty.get(thing);
  +  }
  +
  +  static void setDraggable (Thing thing, bool value) {
  +    _setBoolProp(thing, _isDraggableProperty, value);
  +  }
  +
  +  static bool getDraggable(Thing thing) {
  +    assert(thing != null);
  +    return _isDraggableProperty.get(thing);
  +  }
  +
  +  static void _setBoolProp(Thing thing, Property<bool> prop, bool value) {
  +    assert(thing != null);
  +    assert(prop != null);
       assert(value != null);
  +    assert(prop.defaultValue == false);
       if(value) {
  -      _isClickableProperty.set(thing, true);
  +      prop.set(thing, true);
       } else {
  -      _isClickableProperty.clear(thing);
  -    }
  -  }
  -
  -  static bool getClickable(Thing thing) {
  -    assert(thing != null);
  -    return _isClickableProperty.get(thing);
  +      prop.clear(thing);
  +    }
     }
   
     static GlobalId addHandler(Thing thing,
  
positive.code:   static final Property<bool> _isClickableProperty =
        new Property<bool>("isClickable", false);
  
    static final AttachedEvent<ThingMouseEventArgs> _clickEvent =
        new AttachedEvent<ThingMouseEventArgs>('clickEvent');
  
  
negative.code:   static bool removeMouseOutHandler(Stage stage, GlobalId handlerId) {
      return _mouseOutEvent.removeHandler(stage, handlerId);
    }
  
    static GlobalId addDragHandler(Thing thing,
                                       Action1<Vector> handler) {
      return _dragEvent.addHandler(thing, handler);
    }
  
    static bool removeDragHandler(Thing thing, GlobalId handlerId) {
      return _dragEvent.removeHandler(thing, handlerId);
    }
  
    bool get _isDragging => _dragCoordinate != null;
  
    void _mouseMove(MouseEvent e) {
      final items = _updateMouseLocation(getMouseEventCoordinate(e));
  