anchor.diff:              continue;
           }
           if(col_drop_count > 0) { // Holes below, drop it
  -          dropProduct(x, y, x, y+col_drop_count);
  +          dropProduct(x, y, x, y+col_drop_count, col_drop_count);
           }
         }
  -      // Drop more from the top
  +      
  +      // Drop from the top - animation time depends on how many cols to drop      
         for(int i=0; i<col_drop_count; ++i) {
           ++dropping_products;
           int face_id = 1 + _rng.nextInt(7);
  
positive.code: const SWITCHING = 2;    // Products are being switched
  const IMPLODING = 3;    // Product lines beng imploded
  
  class GameBoard extends DisplayObjectContainer {
  
    ResourceManager _resourceManager;
    Juggler _juggler;
  
negative.code:     }
    }
  
    // Sart the drop animation - animation time depends on how many cols to drop
    // Move a product to it's destination after dropping
    void dropProduct(x1, y1, x2, y2, col_drop_count) {
      ++dropping_products;
      Product product = getGrid(x1, y1);
      setGrid(x1, y1, null);
      var tween = new Tween(product, DROP_TIME*col_drop_count, TransitionFunction.linear)
        ..animate.y.to(y2*GRID_HEIGHT)
        ..onComplete = () => onDropProductComplete(product);
      _juggler.add(tween);
  