diff --git a/app/src/main/java/com/example/cupcake/FlavorFragment.kt b/app/src/main/java/com/example/cupcake/FlavorFragment.kt
index cae160cee0e8fa687715c291a8b0f6122957640e..928148455e56b623c66ad230426c1229b88d4c83 100644
--- a/app/src/main/java/com/example/cupcake/FlavorFragment.kt
+++ b/app/src/main/java/com/example/cupcake/FlavorFragment.kt
@@ -48,9 +48,9 @@ class FlavorFragment : Fragment() {
         super.onViewCreated(view, savedInstanceState)
 
         binding?.apply {
-            viewModel = sharedViewModel
             lifecycleOwner = viewLifecycleOwner
-            nextButton.setOnClickListener { goToNextScreen() }
+            viewModel = sharedViewModel
+            flavorFragment = this@FlavorFragment
         }
     }
 
diff --git a/app/src/main/java/com/example/cupcake/PickupFragment.kt b/app/src/main/java/com/example/cupcake/PickupFragment.kt
index 799116c90d623a19a3eea6bd467d90c52ab924b3..0a7f09f40c507b27af567990cfcc05e12b4e2457 100644
--- a/app/src/main/java/com/example/cupcake/PickupFragment.kt
+++ b/app/src/main/java/com/example/cupcake/PickupFragment.kt
@@ -48,9 +48,9 @@ class PickupFragment : Fragment() {
         super.onViewCreated(view, savedInstanceState)
 
         binding?.apply {
-            viewModel = sharedViewModel
             lifecycleOwner = viewLifecycleOwner
-            nextButton.setOnClickListener { goToNextScreen() }
+            viewModel = sharedViewModel
+            pickupFragment = this@PickupFragment
         }
     }
 
diff --git a/app/src/main/java/com/example/cupcake/StartFragment.kt b/app/src/main/java/com/example/cupcake/StartFragment.kt
index 5c9e353498c3a02984d5c7873b684ee60e05b2ef..fdb0c102fe36c4729c3458d0b4c7ff8182615768 100644
--- a/app/src/main/java/com/example/cupcake/StartFragment.kt
+++ b/app/src/main/java/com/example/cupcake/StartFragment.kt
@@ -46,13 +46,7 @@ class StartFragment : Fragment() {
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
-
-        binding?.apply {
-            // Set up the button click listeners
-            orderOneCupcake.setOnClickListener { orderCupcake(1) }
-            orderSixCupcakes.setOnClickListener { orderCupcake(6) }
-            orderTwelveCupcakes.setOnClickListener { orderCupcake(12) }
-        }
+        binding?.startFragment = this
     }
 
     /**
diff --git a/app/src/main/java/com/example/cupcake/SummaryFragment.kt b/app/src/main/java/com/example/cupcake/SummaryFragment.kt
index 9a9affb658536bfa531d3b75bbd6369f921e8789..dcdf4a72e7557c8dbfdd39af9a779e1f0aad95c5 100644
--- a/app/src/main/java/com/example/cupcake/SummaryFragment.kt
+++ b/app/src/main/java/com/example/cupcake/SummaryFragment.kt
@@ -49,9 +49,9 @@ class SummaryFragment : Fragment() {
         super.onViewCreated(view, savedInstanceState)
 
         binding?.apply {
-            viewModel = sharedViewModel
             lifecycleOwner = viewLifecycleOwner
-            sendButton.setOnClickListener { sendOrder() }
+            viewModel = sharedViewModel
+            summaryFragment = this@SummaryFragment
         }
     }
 
diff --git a/app/src/main/res/layout/fragment_flavor.xml b/app/src/main/res/layout/fragment_flavor.xml
index c5e6d4c1717e6ecb36d1f390f533db757b571825..1f5abdd8c95c27704aef0476b6e5eb3e3b0cec8c 100644
--- a/app/src/main/res/layout/fragment_flavor.xml
+++ b/app/src/main/res/layout/fragment_flavor.xml
@@ -24,6 +24,11 @@
         <variable
             name="viewModel"
             type="com.example.cupcake.model.OrderViewModel" />
+
+        <variable
+            name="flavorFragment"
+            type="com.example.cupcake.FlavorFragment" />
+
     </data>
 
     <ScrollView
@@ -107,6 +112,7 @@
 
             <Button
                 android:id="@+id/next_button"
+                android:onClick="@{() -> flavorFragment.goToNextScreen()}"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/side_margin"
diff --git a/app/src/main/res/layout/fragment_pickup.xml b/app/src/main/res/layout/fragment_pickup.xml
index bc7cd44053cb85ea49d4287e276d7f24b7a3ccb5..20459e953d71b4bf9a098f9c20222af4a2494b69 100644
--- a/app/src/main/res/layout/fragment_pickup.xml
+++ b/app/src/main/res/layout/fragment_pickup.xml
@@ -24,6 +24,10 @@
         <variable
             name="viewModel"
             type="com.example.cupcake.model.OrderViewModel" />
+
+        <variable
+            name="pickupFragment"
+            type="com.example.cupcake.PickupFragment" />
     </data>
 
     <ScrollView
@@ -104,6 +108,7 @@
 
             <Button
                 android:id="@+id/next_button"
+                android:onClick="@{() -> pickupFragment.goToNextScreen()}"
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/side_margin"
diff --git a/app/src/main/res/layout/fragment_start.xml b/app/src/main/res/layout/fragment_start.xml
index 25b11c950ba224a08cc83c91ff9ed038903fd535..d5841550cf4fd0e534422482504f91bc441f22c3 100644
--- a/app/src/main/res/layout/fragment_start.xml
+++ b/app/src/main/res/layout/fragment_start.xml
@@ -20,6 +20,12 @@
     xmlns:tools="http://schemas.android.com/tools"
     tools:context=".StartFragment">
 
+    <data>
+        <variable
+            name="startFragment"
+            type="com.example.cupcake.StartFragment" />
+    </data>
+
     <ScrollView
         android:layout_width="match_parent"
         android:layout_height="match_parent">
@@ -50,6 +56,7 @@
 
             <Button
                 android:id="@+id/order_one_cupcake"
+                android:onClick="@{() -> startFragment.orderCupcake(1)}"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center_horizontal"
@@ -59,6 +66,7 @@
 
             <Button
                 android:id="@+id/order_six_cupcakes"
+                android:onClick="@{() -> startFragment.orderCupcake(6)}"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center_horizontal"
@@ -68,6 +76,7 @@
 
             <Button
                 android:id="@+id/order_twelve_cupcakes"
+                android:onClick="@{() -> startFragment.orderCupcake(12)}"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center_horizontal"
diff --git a/app/src/main/res/layout/fragment_summary.xml b/app/src/main/res/layout/fragment_summary.xml
index c9702b5811f8ff95362d01e6581fb59c2d5e9558..720a3d0858a97f46850d22fde4e5395d78eb7e6e 100644
--- a/app/src/main/res/layout/fragment_summary.xml
+++ b/app/src/main/res/layout/fragment_summary.xml
@@ -23,6 +23,10 @@
         <variable
             name="viewModel"
             type="com.example.cupcake.model.OrderViewModel" />
+
+        <variable
+            name="summaryFragment"
+            type="com.example.cupcake.SummaryFragment" />
     </data>
 
     <ScrollView
@@ -131,6 +135,7 @@
 
             <Button
                 android:id="@+id/send_button"
+                android:onClick="@{() -> summaryFragment.sendOrder()}"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/side_margin"