         let mock = MockPureSwiftDelegate()
         
         view.delegate = mock
-        
+
         let proxy = view.rx.proxy
         XCTAssertTrue(view.delegate === proxy)
         XCTAssertTrue(view.rx.proxy.forwardToDelegate() === mock)
+
+        var latestValue: Int? = nil
+        _ = view.rx.testIt.subscribe(onNext: {
+            latestValue = $0
+        })
+
+        XCTAssertEqual(latestValue, nil)
+        view.testIt(with: 3)
+        XCTAssertEqual(latestValue, 3)
     }
 }
 

    : DelegateProxy<PureSwiftView, PureSwiftDelegate>
    , DelegateProxyType
    , PureSwiftDelegate {
    
    init(parentObject: PureSwiftView) {
        super.init(parentObject: parentObject, delegateProxy: PureSwiftDelegateProxy.self)
    }

}


protocol PureSwiftDelegate: class {
    func delegateTestIt(with: Int)
}

class PureSwiftView: ReactiveCompatible {
    weak var delegate: PureSwiftDelegate?

    func testIt(with: Int) {
        self.delegate?.delegateTestIt(with: with)
    }
}

extension Reactive where Base: PureSwiftView {
    var proxy: DelegateProxy<PureSwiftView, PureSwiftDelegate> {
        return PureSwiftDelegateProxy.proxy(for: base)
    }
}

extension Reactive where Base: PureSwiftView {
    var testIt: ControlEvent<Int> {
        return ControlEvent(events: PureSwiftDelegateProxy.proxy(for: base).testItObserver)
    }
}

