 
 // MARK: PageViewControllerDelegate
 public protocol PageViewControllerDelegate {
+
+  // Called when the view controller changes to another page
   func pageViewController(pageViewController: PageViewController, didTransitionToIndex: Int)
+
+  // Called when the view controller prepares for a segue, to allow parent view controller to inject
+  // properties into child view controller
+  func pageViewController(pageViewController: PageViewController,
+                          prepareForSegue segue: UIStoryboardSegue, sender: AnyObject?)
+
 }
 
 public class PageViewController: UIPageViewController {
 
+  // Dynamic so it can be observable
   private dynamic var _selectedIndex: Int = 0
 
   public var selectedIndex: Int {

      return (self?.rx_observe(Int.self, "_selectedIndex") ?? Observable.empty())
        .map { index in
          index ?? 0
        }
    }

    let bindingObserver = UIBindingObserver(UIElement: self) {


}

// MARK: Segue
extension PageViewController {

  override public func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    pageViewControllerDelegate?.pageViewController(self, prepareForSegue: segue, sender: sender)
  }

}

// MARK: Rx Bindings
// swiftlint:disable variable_name
extension PageViewController {
