     let ignoreFreshDataLoadFail   : Bool
     let cache                     : AsyncRestKitCache
     let cacheDataLifeTimeInSeconds: NSTimeInterval
-    
+
     public init(
         loadDataIdentifier        : Identifier,
         dataLoaderForIdentifier   : AsyncTypes2<Identifier, (DataLoadContext, NSData), NSError>.AsyncBinder,

    cacheDataLifeTimeInSeconds: NSTimeInterval) -> AsyncTypes<(DataRequestContext<DataLoadContext>, NSData), NSError>.Async
{
    let validateByDateResultBinder = { (cachedData: (date: NSDate, data: NSData)) -> AsyncTypes<(DataRequestContext<DataLoadContext>, NSData), NSError>.Async in
        
        let newDate = cachedData.0.dateByAddingTimeInterval(cacheDataLifeTimeInSeconds)
        if newDate.compare(NSDate()) == NSComparisonResult.OrderedDescending {
            
            let cachedResult = (DataRequestContext<DataLoadContext>.CacheUpdateDate(cachedData.0), cachedData.1)
            return async(value: cachedResult)
        }
        
        let error = ErrorNoFreshData(cachedData: cachedData)
        return async(error: error)
    }
    
    return bindSequenceOfAsyncs(cachedDataLoader, validateByDateResultBinder)
}

        cacheKeyForIdentifier     : JCacheKeyForIdentifier,
        ignoreFreshDataLoadFail   : Bool,
        cache                     : AsyncRestKitCache,
        cacheDataLifeTimeInSeconds: NSTimeInterval) {

        self.loadDataIdentifier         = loadDataIdentifier
        self.dataLoaderForIdentifier    = dataLoaderForIdentifier
        self.analyzerForData            = analyzerForData
