         }
     }
     
-    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 cellLocation = collectionView.convertPoint(location, toView: dropCell)
                
                if dropCell.pointInsideIcon(cellLocation) {
                    currentDragState!.setDropIndexPath(nil)
                    
                    if let folderCell = dropCell as? FolderCollectionViewCell {
                        // Something like:
                        /*

                    }
                } else if cellLocation.x < (dropCell.bounds.width / 2) {
                    let newPath = regularLayout.indexPathToMoveSourceIndexPathLeftOfDestIndexPath(currentDragState!.dragIndexPath, destIndexPath: dropIndexPath)
                    moveCells(newPath)
                } else {
                    let newPath = regularLayout.indexPathToMoveSourceIndexPathRightOfDestIndexPath(currentDragState!.dragIndexPath, destIndexPath: dropIndexPath)
                    moveCells(newPath)
                }
            }
        }
