         view.backgroundColor = .white
         
         view.addSubview(outerScrollView)
-        outerScrollView.contentSize = CGSize(width: view.frame.width - 20, height: 5000)
+        outerScrollView.contentSize = CGSize(width: view.frame.width - 20, height: view.frame.height * 1.1)
         outerScrollView.frame = CGRect(x: 10, y: 50, width: view.frame.width - 20, height: view.frame.height - 88)
         
-        outerScrollView.addSubview(nestedUIScrollView)
-        nestedUIScrollView.contentSize = CGSize(width: view.frame.width - 40, height: 5000)
-        nestedUIScrollView.frame = CGRect(x: 10, y: 400, width: view.frame.width - 40, height: view.frame.height - 438)
-    }
-}
-
-extension NestedScrollViewVC: UIScrollViewDelegate {
-    func scrollViewDidScroll(_ scrollView: UIScrollView) {
-        outerScrollView.contentOffset = scrollView.contentOffset
-        outerScrollView.panGestureRecognizer.state = scrollView.panGestureRecognizer.state
-    }
-}
+        outerScrollView.addSubview(nestedScrollView)
+        outerScrollView.nested = nestedScrollView
+        nestedScrollView.contentSize = CGSize(width: view.frame.width - 40, height: 5000)
+        nestedScrollView.frame = CGRect(x: 10, y: 320, width: view.frame.width - 40, height: view.frame.height)
+    }
+}
+
 
 final class OuterScrollView: UIScrollView, UIScrollViewDelegate {
     var outerDeceleration: ScrollingDeceleration?

}

final class NestedScrollViewVC: UIViewController {
    private lazy var outerScrollView: UIScrollView = {
        let outer = UIScrollView()
        outer.delegate = self
        outer.backgroundColor = .systemRed
        return outer
    }()
    
    private lazy var nestedUIScrollView: UIScrollView = {
        let nested = UIScrollView()
        nested.delegate = self
        nested.backgroundColor = .systemBlue
        return nested
    }()

    }()

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        decelerator.invalidateIfNeeded()
    }
}
