 
 public extension Storage {
     
-    func operation(write: Bool, operation: (context: Context) -> Void, completed: (() -> Void)) {
+    func operation(operation: (context: Context, save: Saver) -> Void, completed: (() -> Void)?) {
         let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0)
-        self.operation(queue, write: write, operation: operation, completed: completed)
+        self.operation(queue, operation: operation, completed: completed)
     }
     
 }
     Some storages require propagating these saves across the stack of contexts (e.g. CoreData)
     
     - parameter queue:     queue where the operation will be executed
     - parameter write: true if the context has to persist the changes
     - parameter operation: operation to be executed
     - parameter completed: closure called when the execution is completed
     */
    func operation(queue: dispatch_queue_t, write: Bool, operation: (context: Context) -> Void, completed: (() -> Void)?)
}



 *  Protocol that identifies a persistence storage
 */
public protocol Storage: CustomStringConvertible {
    
    typealias Saver = () -> Void
    
    /// Storage type
    var type: StorageType { get }
