anchor.diff:  
           List l = _hub.picker.find(p);
           if (l == null) return;
  +
           _possibleShape = l[0];
  -        _pickedId = l[1];
  -
  +        _possibleId = l[1];
       }
   
       void _handleMouseUp(MouseData data) {
  
positive.code: 
          _hub.modeController.register(this, ModeData.SELECTION);
  
           _hub.eventRegistry.MouseMove.subscribe(_handleMouseMove);
           _hub.eventRegistry.MouseDown.subscribe(_handleMouseDown);
           _hub.eventRegistry.MouseUp.subscribe(_handleMouseUp);
  
          _selectedShape = _possibleShape = null;
      }
  
      void startMode() {
      }
  
      void endMode() {
          if (_selectedShape != null) {
              _selectedShape.isSelected = false;
              _selectedShape = null;
          }
      }
  
      void _handleMouseMove(MouseData data) {
  
negative.code: 
  class Selector implements IMode {
      Hub _hub;
      bool isRunning;
  
      Shape _possibleShape;
      int _possibleId;
  
      Selector() {
          _hub = Hub.root;
  