 
     /// Custom transition to use when animating scrolls between pages.
     /// Setting this to `nil` will revert to using the standard UIPageViewController animation.
-    public var transition: Transition?
+    open var transition: Transition?
     /// The display link for transitioning.
     internal var transitionDisplayLink: CADisplayLink?
     /// The active transition operation.

    /// Whether the page view controller should infinitely scroll at the end of page ranges.
    ///
    /// Default is FALSE.
    public var isInfiniteScrollEnabled: Bool = false {
        didSet {
            reloadCurrentPageSoftly()
        }

    #endif
    
    /// The object that is the data source for the page view controller. (Defaults to self)
    open weak var dataSource: PageboyViewControllerDataSource? {
        didSet {
            reloadData()
        }
    }
    /// The object that is the delegate for the page view controller.
    open weak var delegate: PageboyViewControllerDelegate?
    
    
    // default is YES. if NO, we immediately call -touchesShouldBegin:withEvent:inContentView:. this has no effect on presses
    open var delaysContentTouches: Bool = true {
        didSet {
            pageViewController?.scrollView?.delaysContentTouches = delaysContentTouches
        }
    }
    /// default YES. if YES, bounces past edge of content and back again.
    open var bounces: Bool = true
    // Whether client content appears on both sides of each page. If 'NO', content on page front will partially show through back.
    // If 'UIPageViewControllerSpineLocationMid' is set, 'doubleSided' is set to 'YES'. Setting 'NO' when spine location is mid results in an exception.
    open var isDoubleSided: Bool = false {
        didSet {
            pageViewController?.isDoubleSided = isDoubleSided
        }
    }
    
    /// Whether the page view controller is currently being touched.
    open var isTracking: Bool {
        return pageViewController?.scrollView?.isTracking ?? false
    }
    /// Whether the page view controller is currently being dragged.
    open var isDragging: Bool {
            return pageViewController?.scrollView?.isDragging ?? false
    }
    // Wether the user isn't dragging (touch up) but page view controller is still moving.
    open var isDecelerating: Bool {
        return pageViewController?.scrollView?.isDecelerating ?? false
    }
    /// Whether user interaction is enabled on the page view controller.
    ///
    /// Default is TRUE
    open var isUserInteractionEnabled: Bool = true {
        didSet {
            pageViewController?.scrollView?.isUserInteractionEnabled = isUserInteractionEnabled
        }
