         })
 
     private func applyObjectChanges() {
-        for eachChange in objectChanges {
-            for (changeType, indexPaths): (NSFetchedResultsChangeType, [NSIndexPath]) in eachChange {
-
-                switch(changeType) {
-                case .Insert: collectionView?.insertItemsAtIndexPaths(indexPaths)
-                case .Delete: collectionView?.deleteItemsAtIndexPaths(indexPaths)
-                case .Update: collectionView?.reloadItemsAtIndexPaths(indexPaths)
-                case .Move:
-                    if let first = indexPaths.first, last = indexPaths.last {
-                        collectionView?.moveItemAtIndexPath(first, toIndexPath: last)
-                    }
+        for (changeType, indexPaths) in objectChanges {
+
+            switch(changeType) {
+            case .Insert: collectionView?.insertItemsAtIndexPaths(indexPaths)
+            case .Delete: collectionView?.deleteItemsAtIndexPaths(indexPaths)
+            case .Update: collectionView?.reloadItemsAtIndexPaths(indexPaths)
+            case .Move:
+                if let first = indexPaths.first, last = indexPaths.last {
+                    collectionView?.moveItemAtIndexPath(first, toIndexPath: last)
                 }
             }
         }

    private typealias SectionChangeTuple = (changeType: NSFetchedResultsChangeType, sectionIndex: Int)
    private var sectionChanges = [SectionChangeTuple]()

    private typealias ObjectIndexPaths = [NSIndexPath]
    private typealias ObjectChangesDictionary = [NSFetchedResultsChangeType : ObjectIndexPaths]


    private var objectChanges = [ObjectChangesDictionary]()

    private lazy var bridgedDelegate: BridgedFetchedResultsDelegate = BridgedFetchedResultsDelegate(
        willChangeContent: { [unowned self] (controller) -> Void in

            self.sectionChanges.append((changeType, sectionIndex))
        },
        didChangeObject: { [unowned self] (controller, anyObject, indexPath: NSIndexPath?, changeType, newIndexPath: NSIndexPath?) -> Void in
            switch changeType {
            case .Insert:
                if let insertIndexPath = newIndexPath {
                    self.objectChanges.append((changeType, [insertIndexPath]))
                }
            case .Delete:
                if let deleteIndexPath = indexPath {
                    self.objectChanges.append((changeType, [deleteIndexPath]))
                }
            case .Update:
                if let indexPath = indexPath {
                    self.objectChanges.append((changeType, [indexPath]))
                }
            case .Move:
                if let old = indexPath, new = newIndexPath {
                    self.objectChanges.append((changeType, [old, new]))
                }
            }
        },
        didChangeContent: { [unowned self] (controller) -> Void in

