diff --git a/uc_cart/lib/Drupal/uc_cart/CheckoutPanePluginBase.php b/uc_cart/lib/Drupal/uc_cart/CheckoutPanePluginBase.php
index d201d9b..c617918 100644
--- a/uc_cart/lib/Drupal/uc_cart/CheckoutPanePluginBase.php
+++ b/uc_cart/lib/Drupal/uc_cart/CheckoutPanePluginBase.php
@@ -8,6 +8,7 @@
 namespace Drupal\uc_cart;
 
 use Drupal\Core\Plugin\PluginBase;
+use Drupal\uc_order\UcOrderInterface;
 
 /**
  * Defines a base checkout pane plugin implementation.
@@ -17,6 +18,19 @@ abstract class CheckoutPanePluginBase extends PluginBase implements CheckoutPane
   /**
    * {@inheritdoc}
    */
+  public function prepare(UcOrderInterface $order, array $form, array &$form_state) {
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function process(UcOrderInterface $order, array $form, array &$form_state) {
+    return TRUE;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function settingsForm() {
   }
 
diff --git a/uc_cart/lib/Drupal/uc_cart/Plugin/CheckoutPaneManager.php b/uc_cart/lib/Drupal/uc_cart/Plugin/CheckoutPaneManager.php
index af1212b..22b1367 100644
--- a/uc_cart/lib/Drupal/uc_cart/Plugin/CheckoutPaneManager.php
+++ b/uc_cart/lib/Drupal/uc_cart/Plugin/CheckoutPaneManager.php
@@ -26,9 +26,6 @@ class CheckoutPaneManager extends DefaultPluginManager {
   protected $defaults = array(
     'enabled' => TRUE,
     'weight' => 0,
-    'review' => TRUE,
-    'process' => TRUE,
-    'collapsible' => TRUE,
   );
 
   /**
diff --git a/uc_cart/lib/Drupal/uc_cart/Plugin/Ubercart/CheckoutPane/CartPane.php b/uc_cart/lib/Drupal/uc_cart/Plugin/Ubercart/CheckoutPane/CartPane.php
new file mode 100644
index 0000000..03ed204
--- /dev/null
+++ b/uc_cart/lib/Drupal/uc_cart/Plugin/Ubercart/CheckoutPane/CartPane.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\uc_cart\Plugin\Ubercart\CheckoutPane\Cart.
+ */
+
+namespace Drupal\uc_cart\Plugin\Ubercart\CheckoutPane;
+
+use Drupal\uc_cart\CheckoutPanePluginBase;
+use Drupal\uc_order\UcOrderInterface;
+
+/**
+ * Displays the cart contents for review during checkout.
+ *
+ * @Plugin(
+ *   id = "cart",
+ *   title = @Translation("Cart contents"),
+ *   description = @Translation("Display the contents of a customer's shopping cart."),
+ *   process = FALSE,
+ *   weight = 1,
+ * )
+ */
+class CartPane extends CheckoutPanePluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function view(UcOrderInterface $order, array $form, array &$form_state) {
+    $build = array(
+      '#theme' => 'uc_cart_review_table',
+      '#items' => $order->products,
+    );
+    return $build;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function review(UcOrderInterface $order) {
+    $review[] = theme('uc_cart_review_table', array('items' => $order->products, 'show_subtotal' => FALSE));
+    return $review;
+  }
+
+}
diff --git a/uc_cart/uc_cart.api.php b/uc_cart/uc_cart.api.php
index 7d1fa3d..629b70f 100644
--- a/uc_cart/uc_cart.api.php
+++ b/uc_cart/uc_cart.api.php
@@ -270,14 +270,6 @@ function hook_uc_cart_checkout_start($order) {
  *     - type: boolean
  *     - value: Optional. Whether or not the pane is enabled by default.
  *       Defaults to TRUE.
- *   - process:
- *     - type: boolean
- *     - value: Optional. Whether or not this pane needs to be processed when
- *       the checkout form is submitted. Defaults to TRUE.
- *   - collapsible:
- *     - type: boolean
- *     - value: Optional. Whether or not this pane is displayed as a collapsible
- *       fieldset. Defaults to TRUE.
  *   - shippable:
  *     - type: boolean
  *     - value: Optional. If TRUE, the pane is only shown if the cart is
@@ -291,8 +283,6 @@ function hook_uc_checkout_pane() {
     'title' => t('Cart contents'),
     'desc' => t("Display the contents of a customer's shopping cart."),
     'weight' => 1,
-    'process' => FALSE,
-    'collapsible' => FALSE,
   );
   return $panes;
 }
diff --git a/uc_cart/uc_cart.module b/uc_cart/uc_cart.module
index 3e23011..14bdb36 100644
--- a/uc_cart/uc_cart.module
+++ b/uc_cart/uc_cart.module
@@ -217,14 +217,6 @@ function uc_cart_uc_message() {
  * Implements hook_uc_checkout_pane().
  */
 function uc_cart_uc_checkout_pane() {
-  $panes['cart'] = array(
-    'callback' => 'uc_checkout_pane_cart',
-    'title' => t('Cart contents'),
-    'desc' => t("Display the contents of a customer's shopping cart."),
-    'weight' => 1,
-    'process' => FALSE,
-    'collapsible' => FALSE,
-  );
   $panes['customer'] = array(
     'callback' => 'uc_checkout_pane_customer',
     'title' => t('Customer information'),
diff --git a/uc_cart/uc_cart_checkout_pane.inc b/uc_cart/uc_cart_checkout_pane.inc
index c74ad05..b3186db 100644
--- a/uc_cart/uc_cart_checkout_pane.inc
+++ b/uc_cart/uc_cart_checkout_pane.inc
@@ -13,24 +13,6 @@
 use Drupal\uc_store\Address;
 
 /**
- * Displays the cart contents for review during checkout.
- */
-function uc_checkout_pane_cart($op, $order, $form = NULL, &$form_state = NULL) {
-  switch ($op) {
-    case 'view':
-      $contents['cart_review_table'] = array(
-        '#theme' => 'uc_cart_review_table',
-        '#items' => $order->products,
-      );
-      return array('contents' => $contents);
-
-    case 'review':
-      $review[] = theme('uc_cart_review_table', array('items' => $order->products, 'show_subtotal' => FALSE));
-      return $review;
-  }
-}
-
-/**
  * Gets the user's email address for login.
  */
 function uc_checkout_pane_customer($op, $order, $form = NULL, &$form_state = NULL) {
