diff --git a/modules/commerce_extra_panes_termsofservice/commerce_extra_panes_termsofservice.install b/modules/commerce_extra_panes_termsofservice/commerce_extra_panes_termsofservice.install
index ae793d8..204a353 100644
--- a/modules/commerce_extra_panes_termsofservice/commerce_extra_panes_termsofservice.install
+++ b/modules/commerce_extra_panes_termsofservice/commerce_extra_panes_termsofservice.install
@@ -14,5 +14,9 @@ function commerce_extra_panes_termsofservice_uninstall() {
     $pane_id = 'extra_pane__' . $extra_pane->extra_type . '__' . $extra_pane->extra_id;
     variable_del('cep_tos_' . $pane_id);
     variable_del('cep_tos_required_' . $pane_id);
+    variable_del('cep_tos_fullnode_' . $pane_id);
+    variable_del('cep_tos_fullnode_review_' . $pane_id);
+    variable_del('cep_tos_agree_' . $pane_id);
+    variable_del('cep_tos_agreed_' . $pane_id);
   }
 }
\ No newline at end of file
diff --git a/modules/commerce_extra_panes_termsofservice/commerce_extra_panes_termsofservice.module b/modules/commerce_extra_panes_termsofservice/commerce_extra_panes_termsofservice.module
index 3aa56cf..e36cb10 100644
--- a/modules/commerce_extra_panes_termsofservice/commerce_extra_panes_termsofservice.module
+++ b/modules/commerce_extra_panes_termsofservice/commerce_extra_panes_termsofservice.module
@@ -25,6 +25,28 @@ function commerce_extra_panes_termsofservice_form_commerce_checkout_pane_setting
       '#title' => t('Make the terms of service required.'),
       '#default_value' => variable_get('cep_tos_required_' . $pane_id, 0),
     );
+    $form['termsofservice']['node-tos-fullnode'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Show full node on checkout pane.'),
+      '#default_value' => variable_get('cep_tos_fullnode_' . $pane_id, 0),
+    );
+    $form['termsofservice']['node-tos-agree'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Message before user agrees.'),
+      '#default_value' => variable_get('cep_tos_agree_' . $pane_id, t('I agree with the <a href="@node-url">Terms of Service</a>')),
+      '#description' => t('This message will be presented to the user. Available tokens <em>@node-url</em>'),
+    );
+    $form['termsofservice']['node-tos-fullnode-review'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Show full node on review pane.'),
+      '#default_value' => variable_get('cep_tos_fullnode_review_' . $pane_id, 0),
+    );
+    $form['termsofservice']['node-tos-agreed'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Confirmation message to inform user that he agreed.'),
+      '#default_value' => variable_get('cep_tos_agreed_' . $pane_id, t('I agree with the <a href="@node-url">Terms of Service</a>')),
+      '#description' => t('This message will be presented to the user on the review pane. Available tokens <em>@node-url</em>'),
+    );
     $form['submit']['#weight'] = 1;
     $form['reset']['#weight'] = 2;
     $form['submit']['#submit'][] = 'commerce_extra_panes_termsofservice_form_settings_submit';
@@ -35,6 +57,10 @@ function commerce_extra_panes_termsofservice_form_settings_submit(&$form, &$form
   $pane_id = $form['checkout_pane']['#value']['pane_id'];
   variable_set('cep_tos_' . $pane_id, $form_state['values']['node-tos']);
   variable_set('cep_tos_required_' . $pane_id, $form_state['values']['node-tos-required']);
+  variable_set('cep_tos_fullnode_' . $pane_id, $form_state['values']['node-tos-fullnode']);
+  variable_set('cep_tos_fullnode_review_' . $pane_id, $form_state['values']['node-tos-fullnode-review']);
+  variable_set('cep_tos_agree_' . $pane_id, $form_state['values']['node-tos-agree']);
+  variable_set('cep_tos_agreed_' . $pane_id, $form_state['values']['node-tos-agreed']);
 }
 
 /**
@@ -46,12 +72,30 @@ function commerce_extra_panes_termsofservice_form_commerce_checkout_form_checkou
     if ($extra_pane->status) {
       $pane_id = 'extra_pane__' . $extra_pane->extra_type . '__' . $extra_pane->extra_id;
       if (variable_get('cep_tos_' . $pane_id, 0)) {
+        if (variable_get('cep_tos_fullnode_' . $pane_id, 0) == 0) {
+          unset($form[$pane_id][$pane_id]);
+        }
         $form[$pane_id]['termsofservice'] = array(
           '#type' => 'checkbox',
-          '#title' => t('I agree with the Terms of Service'),
+          '#title' => t(variable_get('cep_tos_agree_' . $pane_id, 'I agree with the <a href="@node-url">Terms of Service</a>'), array('@node-url' => url('node/' . $extra_pane->extra_id))),
           '#required' => variable_get('cep_tos_required_' . $pane_id, 0),
         );
       }
     }
   }
 }
+
+/**
+ * Implements hook_form_FORM_ID_alter().
+ */
+function commerce_extra_panes_termsofservice_form_commerce_checkout_form_review_alter(&$form, &$form_state, $form_id) {
+  $extra_panes = commerce_extra_panes_get_panes();
+  foreach ($extra_panes as $extra_pane) {
+    if ($extra_pane->status) {
+      $pane_id = 'extra_pane__' . $extra_pane->extra_type . '__' . $extra_pane->extra_id;
+      if (variable_get('cep_tos_fullnode_review_' . $pane_id, 0) == 0) {
+        $form['checkout_review']['review']['#data'][$pane_id]['data'] = t(variable_get('cep_tos_agreed_' . $pane_id, 'I agree with the <a href="@node-url">Terms of Service</a>'), array('@node-url' => url('node/' . $extra_pane->extra_id)));
+      }
+    }
+  }
+}
\ No newline at end of file
