     public private(set) lazy var pageScrollView : UIScrollView = {
         let pageScrollView = UIScrollView()
         pageScrollView.showsHorizontalScrollIndicator = false
-        
-        pageScrollView.delegate = self
         pageScrollView.isPagingEnabled = true
         pageScrollView.scrollsToTop = false
-        
-        observeScrollViewDelegate(pageScrollView)
-        
         return pageScrollView
     }()
     

        super.viewDidLoad()
        view.backgroundColor = UIColor.white
        
        setUpViewControllers()
        
        updateSegmentedTitleTextAttributes()
        
        // Add subviews
        view.addSubview(scrollIndicator)
        view.addSubview(pageScrollView)
        view.addSubview(pageSegmentedControl)
    }
    
    open override func viewDidLayoutSubviews() {

    }
    
    // Observe delegate value changed to disallow that
    // Called in viewDidLoad
    func observeScrollViewDelegate(_ scrollView: UIScrollView) {
        scrollView.addObserver(self, forKeyPath: #keyPath(UIScrollView.delegate), options: NSKeyValueObservingOptions.new, context: nil)
    }
    
    
    func unobserveScrollViewDelegate(_ scrollView: UIScrollView) {
        // observeScrollViewDelegate is called in viewDidLoad
        // check if viewDidLoad has been called before remove observer
        if viewIfLoaded != nil {
            scrollView.removeObserver(self, forKeyPath: #keyPath(UIScrollView.delegate), context: nil)
        }
    }
}
