         return _is_finished
     }
     
-    public init(block : () -> AnyFuture) {
+    public init(block : () throws -> AnyFuture) {
         self.getSubFuture = block
         self._is_executing = false
         self._is_finished = false

public class _FutureAnyOperation : NSOperation, AnyFuture {
    
//    private var getSubFuture : () -> FutureProtocol
    public typealias FutureAnyOperationBlockType = () -> AnyFuture
    private var getSubFuture: FutureAnyOperationBlockType

    


public class FutureOperation<T> : _FutureAnyOperation {
    
    public typealias FutureOperationBlockType = () throws -> (Future<T>)

    public class func OperationWithBlock(block b: () throws -> Future<T>) -> FutureOperation<T> {
        return FutureOperation<T>(block:b)
    }

