         
         updateViewControllers()
     }
-    
-    /**
-        Update the UI to reflect the current walkthrough situation.
-    **/
-    
-    private func updateUI(){
-        
-        //  get the current page
-        
-        pageControl?.currentPage = currentPage
-        
-        //  notify delegate about the new page
-        
-        delegate?.walkthroughPageDidChange?(currentPage)
-        
-        //  hide / show navigation buttons
-        
-        updateButtons()
-    }
-    
-    /**
-        Updates navigation and control buttons (next / previous / close)
-    */
-    private func updateButtons() {
-        
-        nextButton?.hidden = currentPage == controllers.count - 1
-        
-        if currentPage == 0 {
-            prevButton?.hidden = true
-        } else {
-            prevButton?.hidden = false
-        }
-        
-        if let finalTitle = finalCloseButtonTitle {
-            
-            if standardCloseButtonTitle == nil {
-                standardCloseButtonTitle = closeButton?.titleLabel?.text
-            }
-            
-            let title = currentPage == controllers.count - 1 ? finalTitle : standardCloseButtonTitle
-            closeButton?.setTitle(title, forState: .Normal)
-        }
-    }
-}
-
-//  MARK: UIScrollViewDelegate Methods
+}
+
+//  MARK: UIScrollViewDelegate Functions
 extension BWWalkthroughViewController: UIScrollViewDelegate {
-    func scrollViewDidScroll(sv: UIScrollView) {
+    
+    func scrollViewDidScroll(scrollView: UIScrollView) {
         
         for var i=0; i < controllers.count; i++ {
             

                
                let mx = ((scrollView.contentOffset.x + view.bounds.size.width) - (view.bounds.size.width * CGFloat(i))) / view.bounds.size.width
                
                // While sliding to the "next" slide (from right to left), the "current" slide changes its offset from 1.0 to 2.0 while the "next" slide changes it from 0.0 to 1.0
                // While sliding to the "previous" slide (left to right), the current slide changes its offset from 1.0 to 0.0 while the "previous" slide changes it from 2.0 to 1.0
                // The other pages update their offsets whith values like 2.0, 3.0, -2.0... depending on their positions and on the status of the walkthrough
                // This value can be used on the previous, current and next page to perform custom animations on page's subviews.
                
                // print the mx value to get more info.
                // println("\(i):\(mx)")
                
                // We animate only the previous, current and next page
                if(mx < 2 && mx > -2.0){
                    vc.walkthroughDidScroll(scrollView.contentOffset.x, offset: mx)
                }

    }
}

//	MARK: WalkthroughPageDelegate Functions
extension BWWalkthroughViewController: WalkthroughPageDelegate {
    func walkthroughPageRequestsDismissal(walkthroughPage: BWWalkthroughPage) {
        close(self)
    }
}

//	MARK: UIView - Convenience Extension
extension UIView {
    
    /**
        Removes only constraints pertaining to the width or height of this view.
     */
    func removeHeightWidthConstraints() {
        for constraint in constraints() as! [NSLayoutConstraint] {
            if constraint.firstAttribute == .Width || constraint.secondAttribute == .Width ||
