     func showNextWelcomePage(sender: AnyObject)
 }
 
-class WMFWelcomePageViewController: UIPageViewController, UIPageViewControllerDataSource, WMFWelcomeNavigationDelegate {
+class WMFWelcomePageViewController: UIPageViewController, UIPageViewControllerDataSource, UIPageViewControllerDelegate, WMFWelcomeNavigationDelegate {
 
     var completionBlock: (() -> Void)?
-    private var indexForDotIndicator:Int = 0
     
     func showNextWelcomePage(sender: AnyObject){
         let index = pageControllers.indexOf(sender as! UIViewController)
         if index == pageControllers.count - 1 {
-            self.dismissViewControllerAnimated(true, completion:completionBlock)
+            dismissViewControllerAnimated(true, completion:completionBlock)
         }else{
-            self.view.userInteractionEnabled = false
+            view.userInteractionEnabled = false
             let nextIndex = index! + 1
-            indexForDotIndicator = nextIndex
-            self.setViewControllers([pageControllers[nextIndex]], direction: .Forward, animated: true, completion: {(Bool) in
+
+            let direction:UIPageViewControllerNavigationDirection = UIApplication.sharedApplication().wmf_isRTL ? .Reverse : .Forward
+            self.setViewControllers([pageControllers[nextIndex]], direction: direction, animated: true, completion: {(Bool) in
                 self.view.userInteractionEnabled = true
             })
         }

        return controllers
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.dataSource = self
        self.setViewControllers([pageControllers.first!], direction: UIPageViewControllerNavigationDirection.Forward, animated: true, completion: nil)

        addGradient()
        

    }
    
    func presentationIndexForPageViewController(pageViewController: UIPageViewController) -> Int {
        guard let viewControllers = viewControllers, currentVC = viewControllers.first, presentationIndex = pageControllers.indexOf(currentVC) else {
            return 0
        }
        return presentationIndex
    }
    
    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {
        guard let index = pageControllers.indexOf(viewController) else {
            return nil
        }
        return index >= pageControllers.count - 1 ? nil : pageControllers[index + 1]
    }
    
    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
        guard let index = pageControllers.indexOf(viewController) else {
            return nil
        }
        return index == 0 ? nil : pageControllers[index - 1]
    }
    
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
