 
 @objc public protocol ApplicationDelegate: UIApplicationDelegate {
     
-    @objc optional func applicationDidFinishLoadingWindow(_ application: UIApplication)
+    @objc optional func application(_ application: UIApplication, didFinishLoading window: UIWindow)
 }
 
 open class ApplicationController: UIResponder {

    public let reactiveState = MutableProperty<ReactiveState>(.loading)
}

extension ApplicationController: ApplicationDelegate {
    
    open func applicationDidFinishLoadingWindow(_ application: UIApplication) {
        applicationDelegates?.forEach { ad in
            ad.applicationDidFinishLoadingWindow?(application)
        }
    }
    
    open func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]?) -> Bool {
        

                        self?.reactiveState.value = .ready
                        
                        self?.applicationDelegates?.forEach { ad in
                            ad.application?(application, didFinishLoading: window)
                        }
                        
                        disposable.dispose()
