diff --git a/config/install/sms.settings.yml b/config/install/sms.settings.yml
index d00256b..d5c1040 100644
--- a/config/install/sms.settings.yml
+++ b/config/install/sms.settings.yml
@@ -1,6 +1,5 @@
 default_gateway: log
 bootstrap_queue: { }
-enabled_carriers: { }
 country_codes:
   93: "Afghanistan"
   355: "Albania"
diff --git a/config/schema/sms.schema.yml b/config/schema/sms.schema.yml
index d98b24a..9fa8ea9 100644
--- a/config/schema/sms.schema.yml
+++ b/config/schema/sms.schema.yml
@@ -10,9 +10,6 @@ sms.settings:
     bootstrap_queue:
       type: sequence
       label: 'Bootstrap Queue'
-    enabled_carriers:
-      type: sequence
-      label: 'Enabled Carriers'
     country_codes:
       type: sequence
       label: 'International Country Codes'
diff --git a/modules/sms_user/src/Form/AdminSettingsForm.php b/modules/sms_user/src/Form/AdminSettingsForm.php
index 864e524..236065d 100644
--- a/modules/sms_user/src/Form/AdminSettingsForm.php
+++ b/modules/sms_user/src/Form/AdminSettingsForm.php
@@ -13,7 +13,7 @@ use Drupal\Core\Form\FormStateInterface;
 
 
 /**
- * Provides a configuration form for sms carriers.
+ * Provides a general settings form for SMS User.
  */
 class AdminSettingsForm extends ConfigFormBase {
   /**
diff --git a/sms.install b/sms.install
deleted file mode 100644
index 26be433..0000000
--- a/sms.install
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-/**
- * @file
- * Install, update, and uninstall functions for the smsframework module.
- */
-
-/**
- * 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'),
-  );
-
-  return $schema;
-}
diff --git a/sms.links.action.yml b/sms.links.action.yml
index 0056d91..549d7f7 100644
--- a/sms.links.action.yml
+++ b/sms.links.action.yml
@@ -1,10 +1,3 @@
-sms.carrier_add:
-  title: 'Add Carrier'
-  route_name: sms.carrier_add
-  weight: 1
-  appears_on:
-    - sms.carrier_admin
-
 entity.sms_gateway.add:
   title: 'Add gateway'
   route_name: entity.sms_gateway.add
diff --git a/sms.links.menu.yml b/sms.links.menu.yml
index a297542..b88ad1a 100644
--- a/sms.links.menu.yml
+++ b/sms.links.menu.yml
@@ -17,10 +17,3 @@ sms.gateway.list:
   route_name: sms.gateway.list
   parent: sms.admin
   weight: -10
-
-sms.carrier_admin:
-  title: 'Carrier configuration'
-  description: 'Configure supported carriers.'
-  route_name: sms.carrier_admin
-  parent: sms.admin
-  weight: -9
diff --git a/sms.links.task.yml b/sms.links.task.yml
index 09a2667..d550245 100644
--- a/sms.links.task.yml
+++ b/sms.links.task.yml
@@ -5,12 +5,6 @@ sms.gateway.list:
   base_route: sms.gateway.list
   weight: -10
 
-sms.carrier_admin:
-  title: 'Manage'
-  route_name: sms.carrier_admin
-  base_route: sms.carrier_admin
-  weight: -10
-
 sms.bootstrap_admin:
   title: 'Incoming SMS bootstrap'
   description: 'Review settings for incoming SMS bootstrap by-pass'
diff --git a/sms.module b/sms.module
index be9eb67..b326fc5 100644
--- a/sms.module
+++ b/sms.module
@@ -20,22 +20,6 @@ define('SMS_DIR_OUT',   1);
 define('SMS_DIR_IN',    2);
 define('SMS_DIR_ALL',   4);
 
-// Carrier status.
-define('SMS_CARRIER_DEFAULT', 0);
-define('SMS_CARRIER_OVERRIDDEN', 1);
-define('SMS_CARRIER_NORMAL', 3);
-
-/**
- * Implements hook_theme().
- */
-function sms_theme() {
-  $items['sms_carriers_admin_form'] = array(
-    'render element' => 'form',
-  );
-
-  return $items;
-}
-
 /**
  * Implements hook_cron_queue_info().
  */
@@ -197,141 +181,6 @@ function sms_send_form_submit($form, FormStateInterface $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?
- *****************************************************************************/
-
-/**
- * Gets a list of all carriers
- *
- * @param string $domain
- *   (optional) The domain for which the carriers are to be listed.
- *
- * @return array
- *   An array of carriers keyed by the domain name and having arrays as values
- *   with the following keys:
- *   - name: The human readable name of the carrier.
- *   - type: The carrier type.
- *
- * @todo - store carriers in config instead of database
- */
-function sms_carriers($domain = NULL) {
-  $default_carriers = \Drupal::moduleHandler()->invokeAll('sms_carriers');
-  $carriers = array();
-
-  // Load default carriers from code.
-  foreach ($default_carriers as $id => $carrier) {
-    $carriers[$id] = array('name' => $carrier, 'type' => SMS_CARRIER_DEFAULT);
-  }
-
-  // Load overridden carriers from database.
-  $result = db_query("SELECT name, domain FROM {sms_carriers}");
-
-  foreach ($result as $carrier) {
-    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 (Drupal::config('sms.settings')->get('enabled_carriers') as $carrier) {
-    if (is_array($carriers[$carrier])) {
-      $carriers[$carrier]['status'] = 1;
-    }
-  }
-
-  if ($domain) {
-    $carriers[$domain]['domain'] = $domain;
-    return $carriers[$domain];
-  }
-
-  return $carriers;
-}
-
-/**
- * Loads a single carrier.
- *
- * @param string $domain
- *   The domain for which the carrier is to be loaded.
- *
- * @return array
- *   An array containing the carrier info.
- *
- * @see sms_carriers()
- */
-function carrier_load($domain) {
-  return sms_carriers($domain);
-}
-
-/**
- * Saves a carrier to database.
- *
- * @param string $domain
- *   The domain for which the carrier is to be saved.
- * @param array $edit
- *   An array of new values to be saved for the 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);
-    }
-    elseif (!empty($edit['domain'])) {
-      //Case for when the domain name hasn't changed
-      if ($edit['domain'] == $domain) {
-        drupal_write_record('sms_carriers', $edit, 'domain');
-      }
-      //Case for when the domain has changed
-      else {
-        carrier_delete($domain);
-        drupal_write_record('sms_carriers', $edit);
-      }
-
-      // 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);
-  }
-}
-
-/**
- * Deletes a carrier from the database.
- *
- * @param string $domain
- */
-function carrier_delete($domain) {
-  db_delete('sms_carriers')
-    ->condition('domain', $domain)
-    ->execute();
-
-  // Removes carrier from config also.
-  $config = \Drupal::config('sms.settings');
-  $enabled_carriers = $config->get('enabled_carriers');
-  foreach ($enabled_carriers as $i => $carrier) {
-    if ($carrier == $domain) {
-      unset($enabled_carriers[$i]);
-      break;
-    }
-  }
-  $config->set('enabled_carriers', $enabled_carriers)->save();
-}
-
-/******************************************************************************
  * HELPER FUNCTIONS
  */
 
@@ -487,44 +336,3 @@ function sms_dir($out, $in) {
 function sms_country_codes() {
   return \Drupal::config('sms.settings')->get('country_codes');
 }
-
-/**
- * Returns HTML for the sms carriers admin form.
- *
- * @param $form
- *  A form array.
- *
- * @ingroup themeable
- *
- * @todo Update the rendering of this to drupal 8 standard. @see https://drupal.org/node/2195739
- */
-function theme_sms_carriers_admin_form($variables) {
-  $form = $variables['form'];
-
-  $header = array(t('Enabled'), t('Carrier'), t('Domain'), t('Actions'));
-
-  $rows = array();
-  if ($form['status']) {
-    foreach (\Drupal\Core\Render\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 = '';
-  $output .= _theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => array( 'class' => array('sms'), 'id' => 'sms-form-table' )));
-  $output .= drupal_render($form['submit']);
-  $output .= drupal_render_children($form);
-
-  return $output;
-}
diff --git a/sms.routing.yml b/sms.routing.yml
index 4a5b5d9..8c8d94c 100644
--- a/sms.routing.yml
+++ b/sms.routing.yml
@@ -48,40 +48,6 @@ entity.sms_gateway.delete_form:
   requirements:
     _permission: 'administer smsframework'
 
-# Carriers
-sms.carrier_admin:
-  path: '/admin/config/smsframework/carriers'
-  defaults:
-    _form: '\Drupal\sms\Form\CarrierAdminForm'
-    _title: 'Carrier configuration'
-  requirements:
-    _permission: 'administer smsframework'
-
-sms.carrier_add:
-  path: '/admin/config/smsframework/carriers/add'
-  defaults:
-    domain: ''
-    _form: '\Drupal\sms\Form\CarrierEditForm'
-    _title: 'Add Carrier'
-  requirements:
-    _permission: 'administer smsframework'
-
-sms.carrier_edit:
-  path: '/admin/config/smsframework/carriers/edit/{domain}'
-  defaults:
-    _form: '\Drupal\sms\Form\CarrierEditForm'
-    _title: 'Edit carrier'
-  requirements:
-    _permission: 'administer smsframework'
-
-sms.carrier_delete:
-  path: '/admin/config/smsframework/carriers/delete/{domain}'
-  defaults:
-    _title: 'Delete carrier'
-    _form: '\Drupal\sms\Form\CarrierDeleteForm'
-  requirements:
-    _permission: 'administer smsframework'
-
 sms.bootstrap_admin:
   path: '/admin/config/smsframework/bootstrap'
   defaults:
diff --git a/src/Form/CarrierAdminForm.php b/src/Form/CarrierAdminForm.php
deleted file mode 100644
index d405a50..0000000
--- a/src/Form/CarrierAdminForm.php
+++ /dev/null
@@ -1,107 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains CarrierAdminForm class
- */
-
-namespace Drupal\sms\Form;
-
-use Drupal\Core\Form\ConfigFormBase;
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Url;
-
-/**
- * Provides a configuration form for sms carriers.
- */
-class CarrierAdminForm extends ConfigFormBase {
-  /**
-   * {@inheritdoc}
-   */
-  public function getFormID() {
-    return 'sms_carriers_admin_form';
-  }
-  
-  /**
-   * {@inheritdoc}
-   */
-  public function buildForm(array $form, FormStateInterface $form_state) {
-    $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 = $this->t('Default');
-          break;
-        case SMS_CARRIER_OVERRIDDEN:
-          $storage = $this->t('Overridden');
-          break;
-        case SMS_CARRIER_NORMAL:
-        default:
-          $storage = $this->t('Normal');
-          break;
-      }
-      $form['status']['#tree'] = TRUE;
-      if (!isset($carrier['status'])) {
-        $carrier['status']=0;
-      }
-      $form['status'][$css_safe_id] = array(
-        '#type' => 'checkbox',
-        '#title' => $carrier['name'],
-        '#description' => $storage,
-        '#default_value' => $carrier['status'] == 1,
-      );
-  
-      $form['domain'][$css_safe_id] = array(
-        '#type' => 'markup',
-        '#markup' => $id,
-      );
-  
-      $actions[] = \Drupal::l($this->t('Edit'), Url::fromRoute('sms.carrier_edit', ['domain' => $id]));
-  
-      if ($carrier['type'] == SMS_CARRIER_OVERRIDDEN) {
-        $actions[] = \Drupal::l($this->t('Revert'), Url::fromRoute('sms.carrier_delete', ['domain' => $id]));
-      }
-      elseif ($carrier['type'] == SMS_CARRIER_NORMAL) {
-        $actions[] = \Drupal::l($this->t('Delete'), Url::fromRoute('sms.carrier_delete', ['domain' => $id]));
-      }
-  
-      $form['actions'][$css_safe_id] = array(
-        '#type' => 'markup',
-        '#markup' => implode(' | ', $actions),
-      );
-    }
-  
-    $form['submit'] = array(
-      '#type' => 'submit',
-      '#value' => $this->t('Save settings'),
-    );
-  
-    return $form;
-  }
-  
-  /**
-   * {@inheritdoc}
-   */
-  public function submitForm(array &$form, FormStateInterface $form_state) {
-    $enabled_carriers = array();
-    foreach ($form_state['values']['status'] as $carrier => $status) {
-      if ($status) {
-        $enabled_carriers[] = str_replace('-', '.', $carrier);
-      }
-    }
-    $this->config('sms.settings')->set('enabled_carriers', $enabled_carriers)->save();
-    drupal_set_message($this->t('The configuration options have been saved.'));
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function getEditableConfigNames() {
-    return ['sms.settings'];
-  }
-
-}
diff --git a/src/Form/CarrierDeleteForm.php b/src/Form/CarrierDeleteForm.php
deleted file mode 100644
index d773e9b..0000000
--- a/src/Form/CarrierDeleteForm.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/**
- * Contains Drupal\sms\Form\CarrierDeleteForm
- */
-
-namespace Drupal\sms\Form;
-
-use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Url;
-use Drupal\Core\Form\ConfirmFormBase;
-
-class CarrierDeleteForm extends ConfirmFormBase {
-  /**
-   * The carrier associated with this form
-   *
-   * @var array
-   */
-  protected $carrier;
-
-  /**
-   * The base redirect url from this form.
-   *
-   * @var \Drupal\Core\Url
-   */
-  protected $redirectUrl;
-
-  /**
-   * Constructor to provide the attached carrier
-   */
-  public function __construct() {
-    $this->carrier = sms_carriers($this->getRequest()->get('domain'));
-    $this->redirectUrl = new Url(array(
-      'route_name' => 'sms.carrier_admin',
-      'route_parameters' => array(),
-    ));
-  }
-
-  /**
-   * {@inheritdoc
-   */
-  public function getQuestion()
-  {
-    if ($this->carrier['type'] == SMS_CARRIER_OVERRIDDEN) {
-      return $this->t('Are you sure you want revert %carrier?', array('%carrier' => $this->carrier['name']));
-    }
-    else if ($this->carrier['type'] == SMS_CARRIER_NORMAL) {
-      return $this->t('Are you sure you want delete %carrier?', array('%carrier' => $this->carrier['name']));
-    }
-  }
-
-  public function getDescription() {
-    if ($this->carrier['type'] == SMS_CARRIER_OVERRIDDEN) {
-      return $this->t('Reverting this carrier will delete it from the database. It will be replaced with the default carrier settings. This action cannot be undone.');
-    }
-    else if ($this->carrier['type'] == SMS_CARRIER_NORMAL) {
-      return $this->t('This carrier will be removed from the database. This action cannot be undone.');
-    }
-  }
-
-  public function getConfirmText() {
-    if ($this->carrier['type'] == SMS_CARRIER_OVERRIDDEN) {
-      return $this->t('Revert');
-    }
-    else if ($this->carrier['type'] == SMS_CARRIER_NORMAL) {
-      return $this->t('Delete');
-    }
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getCancelUrl()
-  {
-    return $this->redirectUrl;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFormId()
-  {
-    return 'sms_carriers_delete_form';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function submitForm(array &$form, FormStateInterface $form_state)
-  {
-    carrier_delete($this->carrier['domain']);
-    # XXX D7 porting issue: $carrier below never gets set ??
-    # --- this is ALSO a bug in the D6 verion!
-    #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->setRedirect($this->redirectUrl);
-  }
-}
\ No newline at end of file
diff --git a/src/Form/CarrierEditForm.php b/src/Form/CarrierEditForm.php
deleted file mode 100644
index 05ee7cb..0000000
--- a/src/Form/CarrierEditForm.php
+++ /dev/null
@@ -1,96 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains CarrierEditForm class
- */
-
-namespace Drupal\sms\Form;
-
-use Drupal\Core\Form\ConfigFormBase;
-use Drupal\Core\Form\FormStateInterface;
-
-/**
- * Provides a configuration form for sms carriers.
- */
-class CarrierEditForm extends ConfigFormBase {
-  /**
-   * {@inheritdoc}
-   */
-  public function getFormID() {
-    return 'sms_carriers_edit_form';
-  }
-  
-  /**
-   * {@inheritdoc}
-   */
-  public function buildForm(array $form, FormStateInterface $form_state, $domain = NULL) {
-    $carrier = sms_carriers($domain);
-    if (!isset($carrier['domain'])) {
-      $carrier['domain']=NULL;
-    }
-    if (!isset($carrier['name'])) {
-      $carrier['name']=NULL;
-    }
-    $form['carrier'] = array(
-      '#type' => 'value',
-      '#value' => $carrier['domain'],
-    );
-
-    $form['name'] = array(
-      '#type' => 'textfield',
-      '#title' => $this->t('Name'),
-      '#default_value' => $carrier['name'],
-      '#required' => TRUE,
-    );
-
-    $form['domain'] = array(
-      '#type' => 'textfield',
-      '#title' => $this->t('Domain'),
-      '#default_value' => $carrier['domain'],
-      '#required' => TRUE,
-    );
-
-    $form['submit'] = array(
-      '#type' => 'submit',
-      '#value' => $this->t('Save'),
-    );
-
-    return $form;
-  }
-  
-  /**
-   * {@inheritdoc}
-   */
-  public function validateForm(array &$form, FormStateInterface $form_state) {
-    $carriers = sms_carriers();
-    if ($form_state['values']['domain'] != $form_state['values']['carrier']) {
-      foreach ($carriers as $domain => $carrier) {
-        if ($domain == $form_state['values']['domain']) {
-          $form_state->setErrorByName('', $this->t('Domain must be unique.'));
-        }
-      }
-    }
-  }
-  
-  /**
-   * {@inheritdoc}
-   */
-  public function submitForm(array &$form, FormStateInterface $form_state) {
-    $carrier = array(
-      'name' => $form_state['values']['name'],
-      'domain' => $form_state['values']['domain'],
-    );
-    carrier_save($form_state['values']['carrier'], $carrier);
-    drupal_set_message($this->t('The carrier has been saved.'));
-    $form_state['redirect'] = 'admin/config/smsframework/carriers';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function getEditableConfigNames() {
-    return [];
-  }
-
-}
