       
       // collapse
       self.collapse(indexPath: indexPath, tableView: tableView) { children in
-        // FIXME: does not always work (if cell is collapsed and whatnot
-        // because background thread, snapshot gets taken before collapse
-        if let cell = tableView.cellForRowAtIndexPath(indexPath) {
-          cell.hidden = true
-        }
+        // callback to prevent saving until after the reorder finishes
       }
     }
   }

    Util.threadBackground {
      // uncollapse
      self.uncollapse(indexPath: toIndexPath, tableView: tableView) {
        
        print (toIndexPath.row, fromIndexPath.row)
        // display parent
        let displayParent = self.display[toIndexPath.row]
        
        // note parent
        let noteParent = self.getNoteParent(displayParent: displayParent)
        
        // remove section
        var section: [Note] = []
        let parent = self.notes.removeAtIndex(noteParent.index)
        section.append(parent)

    Util.threadBackground {
      // history
      if let _ = completion {} else {
        // don't save on complete or reorder because more processing needs to happen first
        self.historySave()
      }
      
