     
     internal func performBatch(_ update: BatchUpdate, completion: UpdateCompletion? = nil) {
         // TODO: handle known issues
-        // https://techblog.badoo.com/blog/2015/10/08/batch-updates-for-uitableview-and-uicollectionview/
         
         collectionView?.performBatchUpdates({
             self.collectionView?.deleteSections(update.deleteSections)

        }, completion: completion)
    }

    private func register(cell descriptor: CellDescriptor) {
        let identifier = descriptor.identifier



            self.collectionView?.deleteItems(at: update.deleteRows)
            self.collectionView?.insertItems(at: update.insertRows)
            
            // Reloads can not be used in conjunction with other changes
            // https://techblog.badoo.com/blog/2015/10/08/batch-updates-for-uitableview-and-uicollectionview/
            update.reloadRows.forEach(self.reloadCell)
            
            update.moveRows.forEach { move in
                self.collectionView?.moveItem(at: move.at, to: move.to)
            }
