 import RxCocoa
 
 /// Typealias for compatibility with UIButton's rx_action property.
-public typealias CocoaAction = Action<Void, Void>
+public typealias CocoaAction = Action<Void, AnyObject?>
 
 /// Possible errors from invoking execute()
 public enum ActionError: ErrorType {

            // Subscribe to the work.
            work.multicast(buffer).connect()
        }

        buffer.subscribe(onNext: { element in
                    self._elements.onNext(element)
                },

        return self._executing.asObservable().observeOn(MainScheduler.instance)
    }
    private let _executing = Variable(false)
    
    /// Observables returned by the workFactory.
    /// Useful for sending results back from work being completed
    /// e.g. response from a network call.
    public var executionObservables: Observable<Observable<Element>> {
        return self._executionObservables.asObservable().observeOn(MainScheduler.instance)
    }
    private let _executionObservables = PublishSubject<Observable<Element>>()
    
    /// Whether or not we're enabled. Note that this is a *computed* sequence
    /// property based on enabledIf initializer and if we're currently executing.
    /// Always observed on MainScheduler.
