             let options: PagingOptions
             let content: (Item) -> Page
             var viewControllers = [Item: UIHostingController<Page>]()
-            @Binding
-            var scrollToPosition: PageViewScrollPosition?
-            var willScrollCallback: WillScrollCallback?
-            var didScrollCallback: DidScrollCallback?
-            var didSelectCallback: DidSelectCallback?
+            var onWillScroll: ((PagingItem) -> Void)?
+            var onDidScroll: ((PagingItem) -> Void)?
+            var onDidSelect: ((PagingItem) -> Void)?
+
+            @Binding var scrollToPosition: PageViewScrollPosition?
 
             func makeCoordinator() -> Coordinator {
                 Coordinator(self)

                                      startingViewController _: UIViewController?,
                                      destinationViewController _: UIViewController,
                                      transitionSuccessful _: Bool) {
                parent.didScrollCallback?(pagingItem)

                DispatchQueue.main.async {
                    self.parent.scrollToPosition = nil

                                      willScrollToItem pagingItem: PagingItem,
                                      startingViewController _: UIViewController,
                                      destinationViewController _: UIViewController) {
                parent.onWillScroll?(pagingItem)
            }

            func pagingViewController(_: PagingViewController, didSelectItem pagingItem: PagingItem) {
                parent.onDidSelect?(pagingItem)
            }
        }
    }
