 
 final class PageViewController: UIPageViewController, UIPageViewControllerDelegate, UIPageViewControllerDataSource {
     
+    enum ViewData {
+        case unloaded
+        case loading
+        case loaded([LiveVideoInfo])
+        case empty
+        case failed(NSError)
+    }
+    
     let channelId: String
     let sessionConfig: SessionConfig
     let client: XCDYouTubeClient
     
-    let viewData: Property<PageViewData>
+    let viewData: Property<ViewData>
     let userPlayState = MutableProperty(UserPlayState.play)
     
     let fetchAction: Action<(), LiveVideosSearchResult, NSError>

        viewData.producer
            // TODO: isEqual
            .observe(on: UIScheduler())
            .startWithValues { [weak self] (viewData: PageViewData) in
                switch viewData {
                case .unloaded:
                    break

import ReactiveCocoa
import Result

enum UserPlayState {
    case pause
    case play
