 
 class RxViewLifeCycleDemultiplexer: ViewLifeCycleDemultiplexer, ModalViewLifeCycleProtocol, NavigationViewLifeCycleProtocol
 {
+    var rx_viewWillAppear: Observable<Bool> {
+        return _viewWillAppearSubject.asObservable()
+    }
+    
+    var rx_viewDidAppear: Observable<Bool> {
+        return _viewDidAppearSubject.asObservable()
+    }
+    
+    var rx_viewWillDisappear: Observable<Bool> {
+        return _viewWillDisappearSubject.asObservable()
+    }
+    
+    var rx_viewDidDisappear: Observable<Bool> {
+        return _viewDidDisappearSubject.asObservable()
+    }
+    
     // MARK: - ModalViewLifeCycleProtocol observables
-    
+
     var rx_viewWillGetPresented: Observable<Bool> {
         return _viewWillGetPresentedSubject.asObservable()
     }

    private let _viewWillReappearFromBeneathNavStackSubject = PublishSubject<Bool>()
    private let _viewDidReappearFromBeneathNavStackSubject = PublishSubject<Bool>()

    // MARK: - ModalViewLifeCycleProtocol

    func viewWillGetPresented(animated: Bool)

        modalDelegate = self
        navDelegate = self
    }

    private let _viewWillAppearSubject = PublishSubject<Bool>()
    private let _viewDidAppearSubject = PublishSubject<Bool>()
    private let _viewWillDisappearSubject = PublishSubject<Bool>()
    private let _viewDidDisappearSubject = PublishSubject<Bool>()

    private let _viewWillGetPresentedSubject = PublishSubject<Bool>()
    private let _viewDidGetPresentedSubject = PublishSubject<Bool>()
