                     break
                 }
                 if workingVC.shouldShowPrivacyView?() == true {
-                    _showPrivacyView()
+                    addPrivacyView()
                 }
             }
             break
         }
     }
     
-    fileprivate func _showPrivacyView() {
-        let window = UIApplication.shared.keyWindow
+    fileprivate func addPrivacyView() {
+        guard let window = UIApplication.shared.keyWindow else {
+            return
+        }
+
+        backgroundPrivacyView.translatesAutoresizingMaskIntoConstraints = false
+        window.addSubview(backgroundPrivacyView)
         
-        backgroundPrivacyView.translatesAutoresizingMaskIntoConstraints = false
-        window?.addSubview(backgroundPrivacyView)
+        window.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[view]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view": backgroundPrivacyView]))
+        window.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[view]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view": backgroundPrivacyView]))
         
-        window?.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:|[view]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view": backgroundPrivacyView]))
-        window?.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[view]|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["view": backgroundPrivacyView]))
-        
-        window?.bringSubview(toFront: backgroundPrivacyView)
+        window.bringSubview(toFront: backgroundPrivacyView)
     }
     
     internal func hidePrivacyView() {

            // we have a workingVC, does it conform to BackgroundPrivacy?
            // no.. then show it.
            if (workingVC is BackgroundPrivacy) == false {
                _showPrivacyView()
            } else if (workingVC is BackgroundPrivacy) == true {
                // a superclass might conform to it, so see if it has implemented
                // the optional protocol method.

    }
    
    internal func showPrivacyView() {
        guard let selectedViewController = navigator?.selectedViewController else {
            return
        }
        guard let navigationController = selectedViewController as? UINavigationController else {
            return
        }
        
        var workingVC: UIViewController
        
        if let visibleViewController = navigationController.visibleViewController {
            workingVC = visibleViewController
        } else {
            workingVC = selectedViewController
        }
        
        switch backgroundPrivacyOptions {
