     public var didFinishNavigation: ControlEvent<WKNavigationEvent> {
         let source: Observable<WKNavigationEvent> = delegate
             .methodInvoked(.didFinishNavigation)
-            .map(navigationEventWith)
+            .map { arg in
+                let view = try castOrThrow(WKWebView.self, arg[0])
+                let nav = try castOrThrow(WKNavigation.self, arg[1])
+                return (view, nav)
+            }
         return ControlEvent(events: source)
     }
     

    public var didFailNavigation: ControlEvent<WKNavigationFailEvent> {
        let source: Observable<WKNavigationFailEvent> = delegate
            .methodInvoked(.didFailNavigation)
            .map(navigationFailEventWith)
        return ControlEvent(events: source)
    }
    

    public var didStartProvisionalNavigation: ControlEvent<WKNavigationEvent> {
        let source: Observable<WKNavigationEvent> = delegate
            .methodInvoked(.didStartProvisionalNavigation)
            .map { arg in
                let view = try castOrThrow(WKWebView.self, arg[0])
                let nav = try castOrThrow(WKNavigation.self, arg[1])
                return (view, nav)
            }
        return ControlEvent(events: source)
    }
    
