anchor.diff:        for(var i = 0; i < this.num_paths; i++)  {
           var color = this.fill_colors[i % this.num_fill_colors]
           this.movers.push(new Mover(color, i));
  +        if(i > this.num_fill_colors)  {
  +          start = this.movers[i]
  +          end = this.find_mover_with_same_color(start, i);
  +          var conn = new Connection(start, end, color);
  +        }
  +      }
  +    },
  +    find_mover_with_same_color: function(yourself, max)  {
  +      while(true)  {
  +        var potential_match = Math.floor(Math.random() * max)
  +        match = this.movers[potential_match];
  +        //check if the randomly generated target matches the color of the current
  +        if(match != yourself && match.path.style.fillColor == yourself.path.style.fillColor)  {
  +          return match;
  +        }
         }
       },
       update_positions: function()  {
  
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:     },
    });
  
    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);
  