     }
 
     public func willChangeContent(closure: () -> Void) -> Self {
-        self.willChangeContentClosure = closure
+        self.willChangeContentClosures.append(closure)
         return self
     }
     
     public func didChangeContent(closure: () -> Void) -> Self {
-        self.didChangeContentClosure = closure
+        self.didChangeContentClosures.append(closure)
         return self
     }
     
     public func didInsertSection(closure: (FetchedResultsSectionInfo<T>, Int) -> Void) -> Self {
-        self.didInsertSectionClosure = closure
+        self.didInsertSectionClosures.append(closure)
         return self
     }
     
     public func didDeleteSection(closure: (FetchedResultsSectionInfo<T>, Int) -> Void) -> Self {
-        self.didDeleteSectionClosure = closure
+        self.didDeleteSectionClosures.append(closure)
         return self
     }
 
     public func didUpdateSection(closure: (FetchedResultsSectionInfo<T>, Int) -> Void) -> Self {
-        self.didUpdateSectionClosure = closure
+        self.didUpdateSectionClosures.append(closure)
         return self
     }
 
     public func didInsertEntity(closure: (T, NSIndexPath) -> Void) -> Self {
-        self.didInsertEntityClosure = closure
+        self.didInsertEntityClosures.append(closure)
         return self
     }
     
     public func didDeleteEntity(closure: (T, NSIndexPath) -> Void) -> Self {
-        self.didDeleteEntityClosure = closure
+        self.didDeleteEntityClosures.append(closure)
         return self
     }
     
     public func didUpdateEntity(closure: (T, NSIndexPath) -> Void) -> Self {
-        self.didUpdateEntityClosure = closure
+        self.didUpdateEntityClosures.append(closure)
         return self
     }
     
     public func didMoveEntity(closure: (T, NSIndexPath, NSIndexPath) -> Void) -> Self {
-        self.didMoveEntityClosure = closure
+        self.didMoveEntityClosures.append(closure)
         return self
     }
     

    public func refresh() -> (success: Bool, error: NSError?) {
        self.needsReloadDataClosure?()
        
        self.willChangeContentClosure?()
        
        var error: NSError? = nil
        let success = self.performFetch(&error)
        
        self.didChangeContentClosure?()
        
        return (success, error)
    }


    private var needsReloadDataClosure: (() -> Void)?
    
    private lazy var willChangeContentClosures = Array<(() -> Void)>()
    private lazy var didChangeContentClosures = Array<(() -> Void)>()
    
    private lazy var didInsertSectionClosures = Array<((FetchedResultsSectionInfo<T>, Int) -> Void)>()
    private lazy var didDeleteSectionClosures = Array<((FetchedResultsSectionInfo<T>, Int) -> Void)>()
    private lazy var didUpdateSectionClosures = Array<((FetchedResultsSectionInfo<T>, Int) -> Void)>()
    
    private lazy var didInsertEntityClosures = Array<((T, NSIndexPath) -> Void)>()
    private lazy var didDeleteEntityClosures = Array<((T, NSIndexPath) -> Void)>()
    private lazy var didUpdateEntityClosures = Array<((T, NSIndexPath) -> Void)>()
    private lazy var didMoveEntityClosures = Array<((T, NSIndexPath, NSIndexPath) -> Void)>()
    
    private var sectionIndexTitleClosure: ((String) -> String!)?

