     
     private func configureWebView(item: SerializableURLItem) {
         // get a preconfigured new webview
-        let webView = type(of: self).configuredWebView()
+        let webView = WebView()
         self.webView = webView
         
         // remove the imageview from the view hierarchy
         self.providedImageView?.removeFromSuperview()
         
         // start observing the title and the finished loading
-        self.webViewTitleObserver = KeyValueObserver<String>(target: webView, keyPath: #keyPath(WKWebView.title))
+        self.webViewTitleObserver = KeyValueObserver<String>(target: webView, keyPath: #keyPath(WebView.mainFrameTitle))
         self.webViewTitleObserver?.startObserving() { [weak self] newTitle -> String? in
             self?.pageTitleLabel?.stringValue = newTitle
             return .none

    // MARK: Internal State
    
    private var timer: Timer?
    private var webView: WKWebView?
    private var webViewTitleObserver: KeyValueObserver<String>?
    private var webViewDoneObserver: KeyValueObserver<Bool>?
    
    override var item: SerializableURLItem.Result? {
        didSet {
            var duration: TimeInterval = 8
            if let result = self.item, case .success(let item) = result {
                // check to see if we have the info needed
                let fullyConfigured = self.configureCard(item: item)

        // the autolayout for this makes it purposefully twice as big
        // then shrinks it down via a transform
        // this is so a 'normal' size page is what loads.
        webView.translatesAutoresizingMaskIntoConstraints = false
        self.webImageViewParentView?.addSubview(webView)
        self.webImageViewParentView?.centerYAnchor.constraint(equalTo: webView.centerYAnchor, constant: 0).isActive = true
        self.webImageViewParentView?.centerXAnchor.constraint(equalTo: webView.centerXAnchor, constant: 0).isActive = true
        self.webImageViewParentView?.widthAnchor.constraint(equalTo: webView.widthAnchor, multiplier: 0.5, constant: 0).isActive = true
        self.webImageViewParentView?.heightAnchor.constraint(equalTo: webView.heightAnchor, multiplier: 0.5, constant: 0).isActive = true
        self.webImageViewParentView?.layout()
        let webViewBounds = webView.bounds
        let originalTransform = webView.layer?.sublayerTransform ?? CATransform3DIdentity
        let scale = CATransform3DScale(originalTransform, 0.5, 0.5, 1.0)
        let translate = CATransform3DTranslate(scale, webViewBounds.size.width / 2, webViewBounds.size.height / 2, 0)
        webView.layer?.sublayerTransform = translate
        
        // load the url in the webview
        let url = URL(string: item.urlString!)!
        webView.mainFrame.load(URLRequest(url: url))
    }
    
    // MARK: Stage 4 - Optional - Show Error
