       snapshot?.center = center
       
       if cellMoved(sourceIndexPath!, indexPath: indexPath!) {
-        delegate!.updateDataSource(sourceIndexPath!.row, destinationRow: indexPath!.row)
         displaceCellAnimation(tableView, indexPath: indexPath!)
       }
       
       self.previousIndexPath = indexPath
       
     default:
-      delegate!.savePosition(permuteIndex, endRow: indexPath!.row)
       depositCellAnimation(tableView, indexPath: indexPath!)
+      delegate!.didEndLongPress(startIndex, endIndex: indexPath!.row)
 
       break
     }

    switch (gestureState) {
    case UIGestureRecognizerState.Began:
      sourceIndexPath = indexPath
      permuteIndex = sourceIndexPath!.row
      pickupCellAnimation(tableView, indexPath: indexPath!, location: location)
      
    case UIGestureRecognizerState.Changed:

  private var sourceIndexPath: NSIndexPath?
  private var previousIndexPath: NSIndexPath?
  private var backupIndexPath: NSIndexPath?
  private var startIndex: Int!
  
  public init(delegate: JRLongPressGestureHandlerDelegate) {
    self.delegate = delegate
