                     }
                 }
                 
-                doneCallback?(result: Result.failure(error.value))
+                doneCallback?(result: Result.failure(error))
             }
         }
         let dataLoader = dataLoaderForIdentifier(loadDataIdentifier)
-        return asyncWithFinishHookBlock(dataLoader, finishCallbackHook)
+        return asyncWithFinishHookBlock(dataLoader, finishCallbackHook: finishCallbackHook)
     }
 }
 

        
        let loadCachedData = loadFreshCachedDataWithUpdateDate(
            key,
            cache.cachedDataLoaderForKey(key),
            cacheDataLifeTimeInSeconds)
        
        let dataLoaderBinder = dataLoaderWithCachedResultBinder(
            doesNotIgnoreFreshDataLoadFail,
            dataLoaderForIdentifier,
            loadDataIdentifier)
        
        let loader = bindTrySequenceOfAsyncs(loadCachedData, dataLoaderBinder)
        

        
        let cacheBinder = { (analyzedData: Result) -> JAsyncTypes<Result>.JAsync in
            
            let resultLoader = async(result: analyzedData)
            
            if response.updateDate == nil {
                let loader = cache.loaderToSetData(response.data, forKey:key)
