     :param: saveFailure
     :param: waitUntilFinished
     */
-    func saveWithBlock(#block: (() -> Void)?, saveSuccess: (() -> Void)?, saveFailure: ((error: NSError?) -> Void)?, waitUntilFinished:Bool = false) {
+    func saveWithBlock(#block: (() -> Void)?, saveSuccess: (() -> Void)?, saveFailure: ((error: NSError?) -> Void)?, waitUntilFinished:Bool) {
         self.saveWithBlockWaitSave(block: { (save) -> Void in
             block?()
             save()

            }
        }
    }
    
    /**
    Peform block in background queue and save

    }
    
    /**
    Peform block in background queue and save, no wait is needed
    
    :param: block
    */
    func performBlock(#block: (() -> Void)?, completion: (() -> Void)?) {
        self.performBlock(block: block, completion: completion, waitUntilFinished: false)
    }
    
    /**
    Peform block in background queue and save
    
    :param: block
    :param: waitUntilFinished
    */
    func performBlock(#block: (() -> Void)?, completion: (() -> Void)?, waitUntilFinished: Bool) {
        if let block = block {
            let operation = DriverOperation { () -> Void in
                block()
