             }
         }
     }
-    
+
     private func performNativeLoader(
         propertyExtractor: PropertyExtractorType,
-        callbacks: CallbacksBlocksHolder<Value, Error>) -> AsyncHandler
-    {
+        callbacks: CallbacksBlocksHolder<Value, Error>) -> AsyncHandler {
+
         func progressCallback(progressInfo: AnyObject) {
-            
-            propertyExtractor.eachDelegate({(delegate: CallbacksBlocksHolder<Value, Error>) -> () in
+
+            propertyExtractor.eachDelegate { delegate -> Void in
                 delegate.progressCallback?(progressInfo: progressInfo)
-                return
-            })
-        }
-        
+            }
+        }
+
         let doneCallback = doneCallbackBlock(propertyExtractor)
-        
+
         func stateCallback(state: AsyncState) {
-            
-            propertyExtractor.eachDelegate({(delegate: CallbacksBlocksHolder<Value, Error>) -> () in
+
+            propertyExtractor.eachDelegate { delegate -> Void in
                 delegate.stateCallback?(state: state)
-                return
-            })
+            }
         }
 
         let loader  = propertyExtractor.getAsyncLoader()

            }
        }
    }
    
    private func doneCallbackBlock(propertyExtractor: PropertyExtractorType) -> AsyncTypes<Value, Error>.DidFinishAsyncCallback {
        
        return { (result: AsyncResult<Value, Error>) -> () in
            
            //TODO test this if
            //may happen when cancel
            if propertyExtractor.cacheObject == nil {


import iAsync_utils

public enum CachedAsyncTypes<Value, Error: ErrorType> {

    public typealias JResultSetter = (value: AsyncResult<Value, Error>) -> ()
    public typealias JResultGetter = () -> AsyncResult<Value, Error>?
}
