     /// When registering WKWeakScriptHandler, WKWebView create a strong reference to handler
     /// This leads to retain cycle between webView <-> owner and webView <-> scriptHandler
     /// In order to avoid retain cycle
-    class WKWeakScriptHandler: NSObject, WKScriptMessageHandler {
+    final class WKWeakScriptHandler: NSObject, WKScriptMessageHandler {
         weak var delegate: WKScriptMessageHandler?
 
         init(delegate: WKScriptMessageHandler) {

        self.delegate = delegate
        super.init()

        // URL Change observer
        webView.addObserver(self, forKeyPath: Self.urlKeyPath, options: .new, context: nil)

        // add message handler method name to communicate with the wkwebview
        JSBootstrapOutput.allCases.map(\.rawValue).forEach {

            }
        }
        webViewObservation = nil
    }

    /// Inject Teads' bootstrap in the webview
