         }
     }
     
-    internal func showViewController(viewController: UIViewController, animated: Bool) {
+    func showViewController(viewController: UIViewController, animated: Bool) {
         guard let lastViewController = pageViewController.viewControllers?.last else {
             return
         }

    // declare a static var to produce a unique address as the assoc object handle
    static var YALPageControllerAssociatedObjectHandle: UInt8 = 123
    
    /*weak*/ internal var pageViewController = UIPageViewController()
    internal var viewControllers = [UIViewController]()
    internal var didFinishTransition: YALPageControllerTransitionHook?
    internal var pagingEnabled = false
    
    private /*weak*/ var scrollView = UIScrollView()
    
    override init() {
        pagingEnabled = true
    }
    
    internal func showPage(index: UInt, animated: Bool) {
        showViewController(viewControllers[Int(index)], animated: animated)
        
        if let firstControllers = viewControllers.first {

        )
    }
    
    func setupViewControllers(viewControllers: [UIViewController]) {
        self.viewControllers = viewControllers
        guard let firstViewController = viewControllers.first else {
            return
