                     self.animating = true
                     
                     self.performBatchUpdates({ () -> Void in
-                        
                             self.moveItem(at: existingIndexPath, to: indexPath)
-                        
                         }, completion: { (finished) -> Void in
-                            
                             self.animating = false
-                            
                             self.reloadData()
                             
                         })

        
        dragDropDataSource.collectionView(self, deleteDataItemAtIndexPath: existngIndexPath)
        
        self.animating = true
        
        self.performBatchUpdates({ () -> Void in
            
            self.deleteItems(at: [existngIndexPath])
            
        }, completion: { complete -> Void in
            
            self.animating = false
            
            self.reloadData()
            
        })
        
    }
    

        
        dragDropDataSource.collectionView(self, deleteDataItemAtIndexPath: existngIndexPath)
        
        if self.animating {
            self.deleteItems(at: [existngIndexPath])
        }
        else {
            self.animating = true
            self.performBatchUpdates({ () -> Void in
                self.deleteItems(at: [existngIndexPath])
            }, completion: { (finished) -> Void in
                self.animating = false;
                self.reloadData()
            })
            
        }
        
        if let idx = self.draggingPathOfCellBeingDragged {
            if let cell = self.cellForItem(at: idx) {
