         return controllers
     }()
     
+    private lazy var pageControl: UIPageControl? = {
+        return self.view.wmf_firstSubviewOfType(UIPageControl)
+    }()
+
     override func viewDidLoad() {
         super.viewDidLoad()
-        self.dataSource = self
-        self.setViewControllers([pageControllers.first!], direction: UIPageViewControllerNavigationDirection.Forward, animated: true, completion: nil)
+        dataSource = self
+        delegate = self
+        
+        let direction:UIPageViewControllerNavigationDirection = UIApplication.sharedApplication().wmf_isRTL ? .Forward : .Reverse
+        
+        setViewControllers([pageControllers.first!], direction: direction, animated: true, completion: nil)
 
         addGradient()
         

    
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        if let pageControl = view.wmf_firstSubviewOfType(UIPageControl) {
            pageControl.userInteractionEnabled = false
        }
    }

    func showNextWelcomePage(sender: AnyObject)
}

class WMFWelcomePageViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate, WMFWelcomeNavigationDelegate {

    var completionBlock: (() -> Void)?
    
    func showNextWelcomePage(sender: AnyObject){
        let index = pageControllers.indexOf(sender as! UIViewController)
        if index == pageControllers.count - 1 {
            dismissViewControllerAnimated(true, completion:completionBlock)
        }else{
            view.userInteractionEnabled = false
            let nextIndex = index! + 1

            let direction:UIPageViewControllerNavigationDirection = UIApplication.sharedApplication().wmf_isRTL ? .Reverse : .Forward
            self.setViewControllers([pageControllers[nextIndex]], direction: direction, animated: true, completion: {(Bool) in
                self.view.userInteractionEnabled = true
            })
        }
