anchor.diff:          }
         }
       },
  +    //moves the mover towards the destination
  +    //if the mover is at the destination, finds another mover to go to
  +    //  this code probably needs to be improved, the new destination should be handled at the mover level
  +    //also handles rotating the mover (Assuming you have commented the rotation back in)
       update_positions: function()  {
  -      for(var i = 0; i < this.num_paths; i++)  {
  +      for(var i = 0; i < this.movers.length; i++)  {
           var mover = this.movers[i];
           var vector = mover.move_to_destination();
   
           if (vector.length < 5) {
             //set the destination
  -          match = this.find_mover_with_same_color(mover, this.num_paths);
  +          match = this.find_mover_with_same_color(mover, this.movers.length);
             mover.destination = new Point(match.path.bounds.x,  match.path.bounds.y);
             //hack to move to random point if we go out of bounds
             if(mover.destination.x < 0 || mover.destination.y < 0)  {
  
positive.code:       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)  {
  
negative.code:   });
  
    var Connection = Base.extend({
      //creates a segmented line that has two horizontal sections and one vertical section
      //the end poitns are path objects
      //the vertical section should stay at the midpoint between the two endpoints
      initialize: function(start, end, color)  {
        this.path = new Path();
        this.path.strokeColor = color;
  