     func run() -> Result<Disposable> {
         let subscriptionResult: Result<Disposable> = self.parent.source.subscribeSafe(ObserverOf(self))
         
-        if let subscriptionResultError = subscriptionResult.error {
-            return .Error(subscriptionResultError)
-        }
-        
-        let connectResult: Result<Void> = subscriptionResult >>> {
+        return subscriptionResult >>> { Void -> Result<Void> in
             let state = self.parent.state
             
             return self.parent.lock.calculateLocked {

                        self.parent.state.count = 1
                        self.parent.state.connectableSubscription = disposable
                        return SuccessResult
                    }
                }
                else {

}

class RefCount<Element>: Producer<Element> {
    typealias State = (
        count: Int,
        connectableSubscription: Disposable?
    )
    
    var lock = Lock()
    
