         }
     }
     
-    func moveCells() {
+    func moveCells(dropIndexPath:NSIndexPath) {
         if let dragState = currentDragState {
-            if let dropIndexPath = dragState.dropIndexPath {
-                if dragState.dragIndexPath == dropIndexPath {
-                    return
-                }
-                
-                // Update data source
-                let originalIndexPath = dragState.dragIndexPath
-                
-                var item: Any = items[originalIndexPath.item]
-                items.removeAtIndex(originalIndexPath.item)
-                
-                if dropIndexPath.item >= items.count {
-                    items.append(item)
-                } else {
-                    items.insert(item, atIndex:dropIndexPath.item)
-                }
-                
-                dataSource.items = items
-                
-                // Update collection view
-                regularLayout.hideIndexPath = dropIndexPath
-                
-                collectionView.performBatchUpdates({ () -> Void in
-                    self.collectionView.moveItemAtIndexPath(dragState.dragIndexPath, toIndexPath:dropIndexPath)
-                }, completion: nil)
-                
-                // Update drag state
-                currentDragState!.setDragIndexPath(dropIndexPath)
-                currentDragState!.setDropIndexPath(nil)
-            }
+            if dragState.dragIndexPath == dropIndexPath {
+                return
+            }
+            
+            // Update data source
+            let originalIndexPath = dragState.dragIndexPath
+            
+            var item: Any = items[originalIndexPath.item]
+            items.removeAtIndex(originalIndexPath.item)
+            
+            if dropIndexPath.item >= items.count {
+                items.append(item)
+            } else {
+                items.insert(item, atIndex:dropIndexPath.item)
+            }
+            
+            dataSource.items = items
+            
+            // Update collection view
+            regularLayout.hideIndexPath = dropIndexPath
+            
+            collectionView.performBatchUpdates({ () -> Void in
+                self.collectionView.moveItemAtIndexPath(dragState.dragIndexPath, toIndexPath:dropIndexPath)
+            }, completion: nil)
+            
+            // Update drag state
+            currentDragState!.setDragIndexPath(dropIndexPath)
         }
     }
     

    let dragProxyView: UIView
    
    var dragIndexPath: NSIndexPath
    var dropIndexPath: NSIndexPath?
    
    mutating func setDragIndexPath(indexPath:NSIndexPath) {
        dragIndexPath = indexPath
    }
    
    mutating func setDropIndexPath(indexPath:NSIndexPath?) {
        dropIndexPath = indexPath
    }
}


                let cellLocation = collectionView.convertPoint(location, toView: dropCell)
                
                if dropCell.pointInsideIcon(cellLocation) {
                    if let folderCell = dropCell as? FolderCollectionViewCell {
                        // Something like:
                        /*
