diff --git modules/sms_email_gateway/sms_email_gateway.admin.inc modules/sms_email_gateway/sms_email_gateway.admin.inc
new file mode 100644
index 0000000..b7079e7
--- /dev/null
+++ modules/sms_email_gateway/sms_email_gateway.admin.inc
@@ -0,0 +1,204 @@
+<?php
+// $Id$
+
+/**
+ * Form builder for the list of sms carriers.
+ *
+ * @see sms_carriers_admin_form_submit().
+ */
+function sms_email_gateway_carriers_admin_form() {
+  $carriers = sms_email_gateway_carriers();
+
+  $form = array();
+  foreach ($carriers as $id => $carrier) {
+    $actions = array();
+    $css_safe_id = str_replace('.', '-', $id);
+
+    switch ($carrier['type']) {
+      case SMS_CARRIER_DEFAULT:
+        $storage = t('Default');
+        break;
+      case SMS_CARRIER_OVERRIDDEN:
+        $storage = t('Overridden');
+        break;
+      case SMS_CARRIER_NORMAL:
+        $storage = t('Normal');
+        break;
+    }
+    $form['status']['#tree'] = TRUE;
+    $form['status'][$css_safe_id] = array(
+      '#type' => 'checkbox',
+      '#title' => $carrier['name'],
+      '#description' => $storage,
+      '#default_value' => $carrier['status'],
+    );
+
+    $form['domain'][$css_safe_id] = array(
+      '#type' => 'markup',
+      '#value' => $id,
+    );
+
+    $actions[] = l(t('Edit'), "admin/smsframework/carriers/{$id}");
+
+    if ($carrier['type'] == SMS_CARRIER_OVERRIDDEN) {
+      $actions[] = l(t('Revert'), "admin/smsframework/carriers/delete/{$id}");
+    }
+    else if ($carrier['type'] == SMS_CARRIER_NORMAL) {
+      $actions[] = l(t('Delete'), "admin/smsframework/carriers/delete/{$id}");
+    }
+
+    $form['actions'][$css_safe_id] = array(
+      '#type' => 'markup',
+      '#value' => implode(' | ', $actions),
+    );
+  }
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save settings'),
+  );
+
+  return $form;
+}
+
+/**
+ * Form submission handler for sms_carriers_admin_form().
+ *
+ * @see sms_carriers_admin_form().
+ */
+function sms_email_gateway_carriers_admin_form_submit(&$form, &$form_state) {
+  $enabled_carriers = array();
+  foreach ($form_state['values']['status'] as $carrier => $status) {
+    if ($status) {
+      $enabled_carriers[] = str_replace('-', '.', $carrier);
+    }
+  }
+  variable_set('sms_enabled_carriers', $enabled_carriers);
+  drupal_set_message('The configuration options have been saved.');
+}
+
+/**
+ * Form builder for the carrier edit form.
+ *
+ * @param $carrier
+ *   An associative array defining the sms carrier.
+ *
+ * @see sms_email_gateway_carriers_edit_form_submit().
+ */
+function sms_email_gateway_carriers_edit_form($form_state, $carrier = array()) {
+  $form['carrier'] = array(
+    '#type' => 'value',
+    '#value' => $carrier['domain'],
+  );
+
+  $form['name'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Name'),
+    '#default_value' => $carrier['name'],
+    '#required' => TRUE,
+  );
+
+  $form['domain'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Domain'),
+    '#default_value' => $carrier['domain'],
+    '#required' => TRUE,
+  );
+
+  $form['submit'] = array(
+    '#type' => 'submit',
+    '#value' => t('Save'),
+  );
+
+  return $form;
+}
+
+/**
+ * Form submission handler for sms_carriers_edit_form().
+ *
+ * @see sms_carriers_edit_form().
+ */
+function sms_email_gateway_carriers_edit_form_submit(&$form, &$form_state) {
+  $carrier = array();
+  $carrier = array(
+    'name' => $form_state['values']['name'],
+    'domain' => $form_state['values']['domain'],
+  );
+  carrier_save($form_state['values']['carrier'], $carrier);
+  drupal_set_message(t('The carrier has been saved.'));
+  drupal_goto('admin/smsframework/carriers');
+}
+
+/**
+ * Form builder for the carrier deletion confirmation form.
+ *
+ * @param $carrier
+ *   An associative array defining the sms carrier.
+ *
+ * @see sms_carriers_delete_form_submit()
+ */
+function sms_email_gateway_carriers_delete_form(&$form_state, $carrier) {
+  $form['domain'] = array('#type' => 'value', '#value' => $carrier['domain']);
+  $form['type'] = array('#type' => 'value', '#value' => $carrier['type']);
+  if ($carrier['type'] == SMS_CARRIER_OVERRIDDEN) {
+    return confirm_form($form, t('Are you sure you want revert %carrier?', array('%carrier' => $carrier['name'])), 'admin/smsframework/carriers', t('Reverting this carrier will delete it from the database. It will be replaced with the default carrier settings. This action cannot be undone.'), t('Revert'), t('Cancel'));
+  }
+  if ($carrier['type'] == SMS_CARRIER_NORMAL) {
+    return confirm_form($form, t('Are you sure you want delete %carrier?', array('%carrier' => $carrier['name'])), 'admin/smsframework/carriers', t('This carrier will be removed from the database. This action cannot be undone.'), t('Delete'), t('Cancel'));
+  }
+}
+
+/**
+ * Form submission handler for sms_carriers_delete_form().
+ *
+ * @see sms_carriers_delete_form()
+ */
+function sms_email_gateway_carriers_delete_form_submit($form, &$form_state) {
+  db_query('DELETE FROM {sms_carriers} WHERE domain = "%s"', $form_state['values']['domain']);
+  if ($carrier['type'] == SMS_CARRIER_OVERRIDDEN) {
+    drupal_set_message(t('The carrier has been reverted.'));
+  }
+  if ($carrier['type'] == SMS_CARRIER_NORMAL) {
+    drupal_set_message(t('The carrier has been deleted.'));
+  }
+
+  $form_state['redirect'] = 'admin/smsframework/carriers';
+}
+
+/**
+ * Returns HTML for the sms carriers admin form.
+ *
+ * @param $form
+ *  A form array.
+ *
+ * @ingroup themeable
+ */
+function theme_sms_email_gateway_carriers_admin_form($form) {
+  $output = '';
+
+  $header = array('', t('Carrier'), t('Domain'), t('Actions'));
+
+  $rows = array();
+  foreach (element_children($form['status']) as $element) {
+    $name = "<div class='carrier'>";
+    $name .= "<strong>{$form['status'][$element]['#title']}</strong>";
+    $name .= "<div class='description'>{$form['status'][$element]['#description']}</div>";
+    $name .= "</div>";
+    unset($form['status'][$element]['#title']);
+    unset($form['status'][$element]['#description']);
+
+    $row = array(
+      'status' => drupal_render($form['status'][$element]),
+      'name' => $name,
+      'domain' => drupal_render($form['domain'][$element]),
+      'actions' =>  drupal_render($form['actions'][$element]),
+    );
+    $rows[] = $row;
+  }
+
+  $output .= theme('table', $header, $rows, array('id' => 'sms-form-table', 'class' => 'sms'));
+  $output .= drupal_render($form['submit']);
+  $output .= drupal_render($form);
+
+  return $output;
+}
diff --git modules/sms_email_gateway/sms_email_gateway.install modules/sms_email_gateway/sms_email_gateway.install
index 6a53319..98ef4bf 100644
--- modules/sms_email_gateway/sms_email_gateway.install
+++ modules/sms_email_gateway/sms_email_gateway.install
@@ -1,9 +1,39 @@
 <?php
-
 // $Id: sms_email_gateway.install,v 1.1.2.3 2010/11/18 05:37:26 univate Exp $
 
+/**
+ * @file
+ * Install, update and uninstall functions for the sms email gateway module.
+ */
+
+/**
+ * Implements hook_schema().
+ */
+function sms_email_gateway_schema() {
+  $schema['sms_carriers'] = array(
+    'fields' => array(
+      'name'    => array('type' => 'varchar', 'not null' => TRUE, 'length' => 64),
+      'domain'  => array('type' => 'varchar', 'not null' => TRUE, 'length' => 128),
+    ),
+    'primary key' => array('domain'),
+  );
+
+  return $schema;
+}
+
+/**
+ * Implements hook_install().
+ */
+function sms_email_gateway_install() {
+  drupal_install_schema('sms');
+}
+
+/**
+ * Implements hook_uninstall().
+ */
 function sms_email_gateway_uninstall() {
   // TODO: leaving this here for now, in case we need it.
   // variable_del('sms_email_gateway_sendmail_path');
   variable_del('sms_email_gateway_mail_domain');
-}
\ No newline at end of file
+}
+
diff --git modules/sms_email_gateway/sms_email_gateway.module modules/sms_email_gateway/sms_email_gateway.module
index 4358b8e..64eadbe 100644
--- modules/sms_email_gateway/sms_email_gateway.module
+++ modules/sms_email_gateway/sms_email_gateway.module
@@ -3,8 +3,72 @@
 
 /**
  * @file
- * 
+ *
+ */
+
+/**
+ * Implements hook_menu().
+ */
+function sms_email_gateway_menu() {
+  $items['admin/smsframework/carriers'] = array(
+    'title' => 'Carrier configuration',
+    'description' => 'Configure supported carriers.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('sms_email_gateway_carriers_admin_form'),
+    'access arguments' => array('administer smsframework'),
+    'file' => 'sms_email_gateway.admin.inc',
+  );
+
+  $items['admin/smsframework/carriers/manage'] = array(
+    'title' => 'Manage',
+    'type' => MENU_DEFAULT_LOCAL_TASK,
+    'weight' => -10,
+  );
+
+  $items['admin/smsframework/carriers/add'] = array(
+    'title' => 'Add',
+    'description' => 'Configure supported carriers.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('sms_email_gateway_carriers_edit_form'),
+    'access arguments' => array('administer smsframework'),
+    'file' => 'sms_email_gateway.admin.inc',
+    'type' => MENU_LOCAL_TASK,
+  );
+
+  $items['admin/smsframework/carriers/%carrier'] = array(
+    'title' => 'Edit carrier',
+    'description' => 'Configure supported carriers.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('sms_email_gateway_carriers_edit_form', 3),
+    'access arguments' => array('administer smsframework'),
+    'type' => MENU_CALLBACK,
+    'file' => 'sms_email_gateway.admin.inc',
+  );
+
+  $items['admin/smsframework/carriers/delete/%carrier'] = array(
+    'title' => 'Edit carrier',
+    'description' => 'Configure supported carriers.',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('sms_email_gateway_carriers_delete_form', 4),
+    'access arguments' => array('administer smsframework'),
+    'type' => MENU_CALLBACK,
+    'file' => 'sms_email_gateway.admin.inc',
+  );
+
+  return $items;
+}
+
+/**
+ * Implements hook_theme().
  */
+function sms_email_gateway_theme() {
+  $items['sms_email_gateway_carriers_admin_form'] = array(
+    'arguments' => array('form' => NULL),
+    'file' => 'sms_email_gateway.admin.inc',
+  );
+
+  return $items;
+}
 
 /**
  * Implements hook_gateway_info().
@@ -27,7 +91,7 @@ function sms_email_gateway_gateway_info() {
 function sms_email_gateway_send_form() {
   $options = array();
   $carriers = sms_carriers();
-  
+
   foreach ($carriers as $id => $carrier) {
     if ($carrier['status']) {
       $options[$id] = $carrier['name'];
@@ -54,14 +118,6 @@ function sms_email_gateway_send_form() {
 function sms_email_gateway_admin_form(&$form_state) {
   $form = array();
 
-/*
-  TODO: we may not need this, but leaving here just in case.
-  $form['sms_email_gateway_sendmail_path'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Path to sendmail'),
-    '#default_value' => variable_get('sms_email_gateway_sendmail_path', '/usr/sbin/sendmail'),
-    '#description' => t('Enter the full system path to the sendmail program. This is system-dependent. If you have shell access to the system, you can try <em>which sendmail</em> to get the path.'),
-  );*/
   $form['sms_email_gateway_mail_domain'] = array(
     '#type' => 'textfield',
     '#title' => t('Default mail domain'),
@@ -380,3 +436,149 @@ function sms_email_gateway_build_metadata_address($config) {
 
   return $full_from;
 }
+
+/******************************************************************************
+ * SMS Carrier Functions
+ *****************************************************************************/
+
+/**
+ * Get a list of all carriers
+ */
+function sms_email_gateway_carriers($domain = NULL) {
+  $default_carriers = module_invoke_all('sms_carriers');
+  $enabled_carriers = variable_get('sms_enabled_carriers', array());
+
+  // Load default carriers from code
+  foreach ($default_carriers as $id => $carrier) {
+    $carriers[$id] = array('name' => $carrier, 'type' => SMS_CARRIER_DEFAULT);
+  }
+
+  // Load overrideen carriers from database
+  $result = db_query("SELECT name, domain FROM {sms_carriers}");
+
+  while ($carrier = db_fetch_array($result)) {
+    if (in_array($carrier['domain'], array_keys($carriers))) {
+      $type = SMS_CARRIER_OVERRIDDEN;
+    }
+    else {
+      $type = SMS_CARRIER_NORMAL;
+    }
+
+    $carriers[$carrier['domain']] = array(
+      'name' => $carrier['name'],
+      'type' => $type,
+    );
+  }
+
+  foreach($enabled_carriers as $carrier) {
+    if (is_array($carriers[$carrier])) {
+      $carriers[$carrier]['status'] = 1;
+    }
+  }
+
+  if ($domain) {
+    $carriers[$domain]['domain'] = $domain;
+    return $carriers[$domain];
+  }
+
+  return $carriers;
+}
+
+/**
+ * Load a single carrier
+ */
+function carrier_load($domain) {
+  return sms_email_gateway_carriers($domain);
+}
+
+/**
+ * Save a carrier.
+ */
+function carrier_save($domain, $edit) {
+  if (!empty($domain)) {
+    $carrier = carrier_load($domain);
+    if ($carrier['type'] == SMS_CARRIER_DEFAULT) {
+      $edit['status'] = 1;
+      drupal_write_record('sms_carriers', $edit);
+    }
+    else if(!empty($edit['domain'])) {
+      drupal_write_record('sms_carriers', $edit, 'domain');
+      // TODO: we need more logic to figure out when someone is changing the domain name
+    }
+  }
+  else {
+    $edit['status'] = 1;
+    drupal_write_record('sms_carriers', $edit);
+  }
+}
+
+/**
+ * Implements hook_sms_carriers()
+ */
+function sms_email_gateway_sms_carriers() {
+  return array(
+    'sms.3rivers.net' => t('3 River Wireless'),
+    'airtelkk.com' => t('Airtel (Karnataka, India)'),
+    'msg.acsalaska.com' => t('Alaska Communications Systems'),
+    'message.alltel.com' => t('Alltel Wireless'),
+    'txt.att.net' => t('AT&T/Cingular'),
+    'txt.bell.ca' => t('Bell Mobility (Canada)'),
+    'myboostmobile.com' => t('Boost Mobile'),
+    'mobile.celloneusa.com' => t('Cellular One (Dobson)'),
+    'south1.com' => t('Cellular South'),
+    'cwemail.com' => t('Centennial Wireless'),
+    '139.com' => t('ChinaMobile (139)'),
+    'gocbw.com' => t('Cincinnati Bell Wireless'),
+    'cingularme.com' => t('Cingular (GoPhone prepaid/7-11 Speakout)'),
+    'ideasclaro-ca.com' => t('Claro (Nicaragua)'),
+    'mms.claro.com.uy' => t('Claro (Uruguay)'),
+    'comcel.com.co' => t('Comcel'),
+    'sms.mycricket.com' => t('Cricket'),
+    'sms.ctimovil.com.ar' => t('CTI'),
+    'emtelworld.net' => t('Emtel (Mauritius)'),
+    'smsmail.eplus.de' => t('E-Plus'),
+    'fido.ca' => t('Fido (Canada)'),
+    'msg.gci.net' => t('General Communications Inc.'),
+    'msg.globalstarusa.com' => t('Globalstar'),
+    'myhelio.com' => t('Helio'),
+    'ivctext.com' => t('Illinois Valley Cellular'),
+    'sms.mymeteor.ie' => t('Meteor (Ireland)'),
+    'sms.spicenepal.com' => t('Mero Mobile (Nepal)'),
+    'mymetropcs.com' => t('MetroPCS'),
+    'mobilinkworld.com' => t('Mobilink World'),
+    'sms.mobitel.lk' => t('Mobitel (Sri Lanka)'),
+    'movimensaje.com.ar' => t('Movicom'),
+    'movistar.com.co' => t('Movistar (Colombia)'),
+    'sms.co.za' => t('MTN (South Africa)'),
+    'text.mtsmobility.com' => t('MTS (Canada)'),
+    'nextel.net.ar' => t('Nextel (Argentina)'),
+    'orange.fr' => t('Orange (France)'),
+    'orange.pl' => t('Orange (Poland)'),
+    'orange.net' => t('Orange (UK)'),
+    'personal-net.com.ar' => t('Personal (Argentina)'),
+    'text.plusgsm.pl' => t('Plus GSM (Poland)'),
+    'qwestmp.com' => t('Qwest'),
+    'pcs.rogers.com' => t('Rogers (Canada)'),
+    'sms.sasktel.com' => t('Sasktel (Canada)'),
+    'mas.aw' => t('Setar Mobile email (Aruba)'),
+    'page.nextel.com' => t('Sprint (Nextel)'),
+    'messaging.sprintpcs.com' => t('Sprint (PCS)'),
+    'tms.suncom.com' => t('Suncom'),
+    'tmomail.net' => t('T-Mobile'),
+    'sms.t-mobile.at' => t('T-Mobile (Austria)'),
+    't-mobile-sms.de' => t('T-Mobile Germany'),
+    'msg.telus.com' => t('Telus Mobility (Canada)'),
+    'sms.thumbcellular.com' => t('Thumb Cellular'),
+    'sms.tigo.com.co' => t('Tigo (Formerly Ola)'),
+    'utext.com' => t('Unicel'),
+    'email.uscc.net' => t('US Cellular'),
+    'vtext.com' => t('Verizon'),
+    'vmobile.ca' => t('Virgin Mobile (Canada)'),
+    'vmobl.com' => t('Virgin Mobile'),
+    'vodafone-sms.de' => t('Vodafone Germany'),
+    'sms.ycc.ru' => t('YCC'),
+    'vmpix.com' => t('Virgin Mobile'),
+  );
+}
+
+
diff --git sms.admin.inc sms.admin.inc
index f6f5cdb..26f2eea 100644
--- sms.admin.inc
+++ sms.admin.inc
@@ -130,204 +130,4 @@ function sms_admin_gateway_form_submit($form, &$form_state) {
   $form_state['redirect'] = 'admin/smsframework/gateways';
 }
 
-/**
- * Form builder for the list of sms carriers.
- *
- * @see sms_carriers_admin_form_submit().
- */
-function sms_carriers_admin_form() {
-  $carriers = sms_carriers();
-
-  $form = array();
-  foreach ($carriers as $id => $carrier) {
-    $actions = array();
-    $css_safe_id = str_replace('.', '-', $id);
-
-    switch ($carrier['type']) {
-      case SMS_CARRIER_DEFAULT:
-        $storage = t('Default');
-        break;
-      case SMS_CARRIER_OVERRIDDEN:
-        $storage = t('Overridden');
-        break;
-      case SMS_CARRIER_NORMAL:
-        $storage = t('Normal');
-        break;
-    }
-    $form['status']['#tree'] = TRUE;
-    $form['status'][$css_safe_id] = array(
-      '#type' => 'checkbox',
-      '#title' => $carrier['name'],
-      '#description' => $storage,
-      '#default_value' => $carrier['status'],
-    );
-
-    $form['domain'][$css_safe_id] = array(
-      '#type' => 'markup',
-      '#value' => $id,
-    );
-
-    $actions[] = l(t('Edit'), "admin/smsframework/carriers/{$id}");
-
-    if ($carrier['type'] == SMS_CARRIER_OVERRIDDEN) {
-      $actions[] = l(t('Revert'), "admin/smsframework/carriers/delete/{$id}");
-    }
-    else if ($carrier['type'] == SMS_CARRIER_NORMAL) {
-      $actions[] = l(t('Delete'), "admin/smsframework/carriers/delete/{$id}");
-    }
-
-    $form['actions'][$css_safe_id] = array(
-      '#type' => 'markup',
-      '#value' => implode(' | ', $actions),
-    );
-  }
-
-  $form['submit'] = array(
-    '#type' => 'submit',
-    '#value' => t('Save settings'),
-  );
-
-  return $form;
-}
-
-/**
- * Form submission handler for sms_carriers_admin_form().
- *
- * @see sms_carriers_admin_form().
- */
-function sms_carriers_admin_form_submit(&$form, &$form_state) {
-  $enabled_carriers = array();
-  foreach ($form_state['values']['status'] as $carrier => $status) {
-    if ($status) {
-      $enabled_carriers[] = str_replace('-', '.', $carrier);
-    }
-  }
-  variable_set('sms_enabled_carriers', $enabled_carriers);
-  drupal_set_message('The configuration options have been saved.');
-}
-
-/**
- * Form builder for the carrier edit form.
- *
- * @param $carrier
- *   An associative array defining the sms carrier.
- *
- * @see sms_carriers_edit_form_submit().
- */
-function sms_carriers_edit_form($form_state, $carrier = array()) {
-  $form['carrier'] = array(
-    '#type' => 'value',
-    '#value' => $carrier['domain'],
-  );
-
-  $form['name'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Name'),
-    '#default_value' => $carrier['name'],
-    '#required' => TRUE,
-  );
-
-  $form['domain'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Domain'),
-    '#default_value' => $carrier['domain'],
-    '#required' => TRUE,
-  );
-
-  $form['submit'] = array(
-    '#type' => 'submit',
-    '#value' => t('Save'),
-  );
-
-  return $form;
-}
-
-/**
- * Form submission handler for sms_carriers_edit_form().
- *
- * @see sms_carriers_edit_form().
- */
-function sms_carriers_edit_form_submit(&$form, &$form_state) {
-  $carrier = array();
-  $carrier = array(
-    'name' => $form_state['values']['name'],
-    'domain' => $form_state['values']['domain'],
-  );
-  carrier_save($form_state['values']['carrier'], $carrier);
-  drupal_set_message(t('The carrier has been saved.'));
-  drupal_goto('admin/smsframework/carriers');
-}
-
-/**
- * Form builder for the carrier deletion confirmation form.
- *
- * @param $carrier
- *   An associative array defining the sms carrier.
- *
- * @see sms_carriers_delete_form_submit()
- */
-function sms_carriers_delete_form(&$form_state, $carrier) {
-  $form['domain'] = array('#type' => 'value', '#value' => $carrier['domain']);
-  $form['type'] = array('#type' => 'value', '#value' => $carrier['type']);
-  if ($carrier['type'] == SMS_CARRIER_OVERRIDDEN) {
-    return confirm_form($form, t('Are you sure you want revert %carrier?', array('%carrier' => $carrier['name'])), 'admin/smsframework/carriers', t('Reverting this carrier will delete it from the database. It will be replaced with the default carrier settings. This action cannot be undone.'), t('Revert'), t('Cancel'));
-  }
-  if ($carrier['type'] == SMS_CARRIER_NORMAL) {
-    return confirm_form($form, t('Are you sure you want delete %carrier?', array('%carrier' => $carrier['name'])), 'admin/smsframework/carriers', t('This carrier will be removed from the database. This action cannot be undone.'), t('Delete'), t('Cancel'));
-  }
-}
 
-/**
- * Form submission handler for sms_carriers_delete_form().
- *
- * @see sms_carriers_delete_form()
- */
-function sms_carriers_delete_form_submit($form, &$form_state) {
-  db_query('DELETE FROM {sms_carriers} WHERE domain = "%s"', $form_state['values']['domain']);
-  if ($carrier['type'] == SMS_CARRIER_OVERRIDDEN) {
-    drupal_set_message(t('The carrier has been reverted.'));
-  }
-  if ($carrier['type'] == SMS_CARRIER_NORMAL) {
-    drupal_set_message(t('The carrier has been deleted.'));
-  }
-
-  $form_state['redirect'] = 'admin/smsframework/carriers';
-}
-
-/**
- * Returns HTML for the sms carriers admin form.
- *
- * @param $form
- *  A form array.
- *
- * @ingroup themeable
- */
-function theme_sms_carriers_admin_form($form) {
-  $output = '';
-
-  $header = array('', t('Carrier'), t('Domain'), t('Actions'));
-
-  $rows = array();
-  foreach (element_children($form['status']) as $element) {
-    $name = "<div class='carrier'>";
-    $name .= "<strong>{$form['status'][$element]['#title']}</strong>";
-    $name .= "<div class='description'>{$form['status'][$element]['#description']}</div>";
-    $name .= "</div>";
-    unset($form['status'][$element]['#title']);
-    unset($form['status'][$element]['#description']);
-
-    $row = array(
-      'status' => drupal_render($form['status'][$element]),
-      'name' => $name,
-      'domain' => drupal_render($form['domain'][$element]),
-      'actions' =>  drupal_render($form['actions'][$element]),
-    );
-    $rows[] = $row;
-  }
-
-  $output .= theme('table', $header, $rows, array('id' => 'sms-form-table', 'class' => 'sms'));
-  $output .= drupal_render($form['submit']);
-  $output .= drupal_render($form);
-
-  return $output;
-}
diff --git sms.install sms.install
index 60070ab..05a1175 100644
--- sms.install
+++ sms.install
@@ -17,14 +17,7 @@ function sms_install() {
  * Implements hook_schema().
  */
 function sms_schema() {
-  $schema['sms_carriers'] = array(
-    'fields' => array(
-      'name'    => array('type' => 'varchar', 'not null' => TRUE, 'length' => 64),
-      'domain'  => array('type' => 'varchar', 'not null' => TRUE, 'length' => 128),
-    ),
-    'primary key' => array('domain'),
-  );
-
+  $schema = array();
   return $schema;
 }
 
@@ -48,10 +41,11 @@ function sms_update_1() {
 function sms_uninstall() {
   drupal_uninstall_schema('sms');
 
+/*
   $variables = array();
 
   foreach ($variables as $variable) {
     variable_del($variable);
   }
-
+*/
 }
diff --git sms.module sms.module
index 1f67623..4887791 100644
--- sms.module
+++ sms.module
@@ -79,51 +79,6 @@ function sms_menu() {
     'file' => 'sms.admin.inc',
   );
 
-  $items['admin/smsframework/carriers'] = array(
-    'title' => 'Carrier configuration',
-    'description' => 'Configure supported carriers.',
-    'page callback' => 'drupal_get_form',
-    'page arguments' => array('sms_carriers_admin_form'),
-    'access arguments' => array('administer smsframework'),
-    'file' => 'sms.admin.inc',
-  );
-
-  $items['admin/smsframework/carriers/manage'] = array(
-    'title' => 'Manage',
-    'type' => MENU_DEFAULT_LOCAL_TASK,
-    'weight' => -10,
-  );
-
-  $items['admin/smsframework/carriers/add'] = array(
-    'title' => 'Add',
-    'description' => 'Configure supported carriers.',
-    'page callback' => 'drupal_get_form',
-    'page arguments' => array('sms_carriers_edit_form'),
-    'access arguments' => array('administer smsframework'),
-    'file' => 'sms.admin.inc',
-    'type' => MENU_LOCAL_TASK,
-  );
-
-  $items['admin/smsframework/carriers/%carrier'] = array(
-    'title' => 'Edit carrier',
-    'description' => 'Configure supported carriers.',
-    'page callback' => 'drupal_get_form',
-    'page arguments' => array('sms_carriers_edit_form', 3),
-    'access arguments' => array('administer smsframework'),
-    'type' => MENU_CALLBACK,
-    'file' => 'sms.admin.inc',
-  );
-
-  $items['admin/smsframework/carriers/delete/%carrier'] = array(
-    'title' => 'Edit carrier',
-    'description' => 'Configure supported carriers.',
-    'page callback' => 'drupal_get_form',
-    'page arguments' => array('sms_carriers_delete_form', 4),
-    'access arguments' => array('administer smsframework'),
-    'type' => MENU_CALLBACK,
-    'file' => 'sms.admin.inc',
-  );
-
   return $items;
 }
 
@@ -138,8 +93,7 @@ function sms_perm() {
  * Implements hook_theme().
  */
 function sms_theme() {
-  $items['sms_admin_default_form'] =
-  $items['sms_carriers_admin_form'] = array(
+  $items['sms_admin_default_form'] = array(
     'arguments' => array('form' => NULL),
     'file' => 'sms.admin.inc',
   );
@@ -371,153 +325,6 @@ function sms_send_form_submit($form, &$form_state) {
 }
 
 /******************************************************************************
- * SMS Carrier Functions
- *
- * @todo - consider moving this to email gateway, unless there is a reason to
- * have these functions without the email gateway?
- *****************************************************************************/
-
-/**
- * Get a list of all carriers
- */
-function sms_carriers($domain = NULL) {
-  $default_carriers = module_invoke_all('sms_carriers');
-  $enabled_carriers = variable_get('sms_enabled_carriers', array());
-
-  // Load default carriers from code
-  foreach ($default_carriers as $id => $carrier) {
-    $carriers[$id] = array('name' => $carrier, 'type' => SMS_CARRIER_DEFAULT);
-  }
-
-  // Load overrideen carriers from database
-  $result = db_query("SELECT name, domain FROM {sms_carriers}");
-
-  while ($carrier = db_fetch_array($result)) {
-    if (in_array($carrier['domain'], array_keys($carriers))) {
-      $type = SMS_CARRIER_OVERRIDDEN;
-    }
-    else {
-      $type = SMS_CARRIER_NORMAL;
-    }
-
-    $carriers[$carrier['domain']] = array(
-      'name' => $carrier['name'],
-      'type' => $type,
-    );
-  }
-
-  foreach($enabled_carriers as $carrier) {
-    if (is_array($carriers[$carrier])) {
-      $carriers[$carrier]['status'] = 1;
-    }
-  }
-
-  if ($domain) {
-    $carriers[$domain]['domain'] = $domain;
-    return $carriers[$domain];
-  }
-
-  return $carriers;
-}
-
-/**
- * Load a single carrier
- */
-function carrier_load($domain) {
-  return sms_carriers($domain);
-}
-
-/**
- * Save a carrier.
- */
-function carrier_save($domain, $edit) {
-  if (!empty($domain)) {
-    $carrier = carrier_load($domain);
-    if ($carrier['type'] == SMS_CARRIER_DEFAULT) {
-      $edit['status'] = 1;
-      drupal_write_record('sms_carriers', $edit);
-    }
-    else if(!empty($edit['domain'])) {
-      drupal_write_record('sms_carriers', $edit, 'domain');
-      // TODO: we need more logic to figure out when someone is changing the domain name
-    }
-  }
-  else {
-    $edit['status'] = 1;
-    drupal_write_record('sms_carriers', $edit);
-  }
-}
-
-/**
- * Implements hook_sms_carriers()
- */
-function sms_sms_carriers() {
-  return array(
-    'sms.3rivers.net' => t('3 River Wireless'),
-    'airtelkk.com' => t('Airtel (Karnataka, India)'),
-    'msg.acsalaska.com' => t('Alaska Communications Systems'),
-    'message.alltel.com' => t('Alltel Wireless'),
-    'txt.att.net' => t('AT&T/Cingular'),
-    'txt.bell.ca' => t('Bell Mobility (Canada)'),
-    'myboostmobile.com' => t('Boost Mobile'),
-    'mobile.celloneusa.com' => t('Cellular One (Dobson)'),
-    'south1.com' => t('Cellular South'),
-    'cwemail.com' => t('Centennial Wireless'),
-    '139.com' => t('ChinaMobile (139)'),
-    'gocbw.com' => t('Cincinnati Bell Wireless'),
-    'cingularme.com' => t('Cingular (GoPhone prepaid/7-11 Speakout)'),
-    'ideasclaro-ca.com' => t('Claro (Nicaragua)'),
-    'mms.claro.com.uy' => t('Claro (Uruguay)'),
-    'comcel.com.co' => t('Comcel'),
-    'sms.mycricket.com' => t('Cricket'),
-    'sms.ctimovil.com.ar' => t('CTI'),
-    'emtelworld.net' => t('Emtel (Mauritius)'),
-    'smsmail.eplus.de' => t('E-Plus'),
-    'fido.ca' => t('Fido (Canada)'),
-    'msg.gci.net' => t('General Communications Inc.'),
-    'msg.globalstarusa.com' => t('Globalstar'),
-    'myhelio.com' => t('Helio'),
-    'ivctext.com' => t('Illinois Valley Cellular'),
-    'sms.mymeteor.ie' => t('Meteor (Ireland)'),
-    'sms.spicenepal.com' => t('Mero Mobile (Nepal)'),
-    'mymetropcs.com' => t('MetroPCS'),
-    'mobilinkworld.com' => t('Mobilink World'),
-    'sms.mobitel.lk' => t('Mobitel (Sri Lanka)'),
-    'movimensaje.com.ar' => t('Movicom'),
-    'movistar.com.co' => t('Movistar (Colombia)'),
-    'sms.co.za' => t('MTN (South Africa)'),
-    'text.mtsmobility.com' => t('MTS (Canada)'),
-    'nextel.net.ar' => t('Nextel (Argentina)'),
-    'orange.fr' => t('Orange (France)'),
-    'orange.pl' => t('Orange (Poland)'),
-    'orange.net' => t('Orange (UK)'),
-    'personal-net.com.ar' => t('Personal (Argentina)'),
-    'text.plusgsm.pl' => t('Plus GSM (Poland)'),
-    'qwestmp.com' => t('Qwest'),
-    'pcs.rogers.com' => t('Rogers (Canada)'),
-    'sms.sasktel.com' => t('Sasktel (Canada)'),
-    'mas.aw' => t('Setar Mobile email (Aruba)'),
-    'page.nextel.com' => t('Sprint (Nextel)'),
-    'messaging.sprintpcs.com' => t('Sprint (PCS)'),
-    'tms.suncom.com' => t('Suncom'),
-    'tmomail.net' => t('T-Mobile'),
-    'sms.t-mobile.at' => t('T-Mobile (Austria)'),
-    't-mobile-sms.de' => t('T-Mobile Germany'),
-    'msg.telus.com' => t('Telus Mobility (Canada)'),
-    'sms.thumbcellular.com' => t('Thumb Cellular'),
-    'sms.tigo.com.co' => t('Tigo (Formerly Ola)'),
-    'utext.com' => t('Unicel'),
-    'email.uscc.net' => t('US Cellular'),
-    'vtext.com' => t('Verizon'),
-    'vmobile.ca' => t('Virgin Mobile (Canada)'),
-    'vmobl.com' => t('Virgin Mobile'),
-    'vodafone-sms.de' => t('Vodafone Germany'),
-    'sms.ycc.ru' => t('YCC'),
-    'vmpix.com' => t('Virgin Mobile'),
-  );
-}
-
-/******************************************************************************
  * HELPER FUNCTIONS
  *****************************************************************************/
 
