         return action
     }
 }
+
+// MARK: - Helpers
+
+private extension PresentationManager {
+    static func createWindow() -> UIWindow {
+        let window = UIWindow(frame: UIScreen.main.bounds)
+        window.windowLevel = UIWindow.Level.alert + 1
+
+        let viewController = SirenViewController()
+        viewController.retainedWindow = window
+
+        window.rootViewController = viewController
+        return window
+    }
+}

    var alertController: UIAlertController?

    /// The `UIWindow` instance that presents the `SirenViewController`.
    private var updaterWindow: UIWindow {
        let window = UIWindow(frame: UIScreen.main.bounds)
        window.windowLevel = UIWindow.Level.alert + 1

        let viewController = SirenViewController()
        viewController.retainedWindow = window

        window.rootViewController = viewController
        return window
    }

    /// `PresentationManager`'s public initializer.
    ///

    func cleanUp() {
        alertController?.hide(window: updaterWindow)
        alertController?.dismiss(animated: true, completion: nil)
        updaterWindow.resignKey()
    }
}

