anchor.diff:      },
     });
   
  +  var Connection = Base.extend({
  +    initialize: function(start, end, color)  {
  +      this.path = new Path();
  +      this.path.strokeColor = color;
  +      this.start = start
  +      this.end = end
  +
  +      this.path.add(start.add_connection(this));
  +      this.path.add(end.add_connection(this));
  +    },
  +    update_position: function(caller, new_pos)  {
  +      if(caller == this.start)  {
  +        this.path.segments[0].point.x = new_pos.x;
  +        this.path.segments[0].point.y = new_pos.y;
  +      } else  {
  +        this.path.segments[1].point.x = new_pos.x;
  +        this.path.segments[1].point.y = new_pos.y;
  +      }
  +    },
  +  });
  +  
     var Mover = Base.extend({
       initialize: function(color, num)  {
         //path = new Path.Circle(view.center + i, i);
  
positive.code:       this.text.characterStyle.fontSize = num/2;
        this.text.fillColor = 'white';
        this.text.content = num;
  
        this.destination = Point.random() * view.size;
        this.randomize_rotate_speed();
  
negative.code:       vector = this.destination - this.path.position;
        this.path.position += vector / 30;
        this.text.position += vector / 30;
        for(var i = 0; i < this.connections.length; i++)  {
          this.connections[i].update_position(this, this.path.position);
        }
        return vector;
      },
      add_connection: function(path)  {
        this.connections.push(path);
        return this.path.position;
      },
    });
  
    mover_group = new RandomMoverGroup(40);
  
    function onFrame(event) {
      mover_group.update_positions();
  