diff --git a/core/modules/migrate_drupal/migration_templates/d6_field_formatter_settings.yml b/core/modules/migrate_drupal/migration_templates/d6_field_formatter_settings.yml
index 880d77f..2e58dd4 100644
--- a/core/modules/migrate_drupal/migration_templates/d6_field_formatter_settings.yml
+++ b/core/modules/migrate_drupal/migration_templates/d6_field_formatter_settings.yml
@@ -52,10 +52,6 @@ process:
           - type
           - 'display_settings/format'
         map:
-          text:
-            default: text_default
-            trimmed: text_trimmed
-            plain: basic_string
           number_integer:
             default: number_integer
             us_0: number_integer
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/cckfield/TextField.php b/core/modules/migrate_drupal/src/Plugin/migrate/cckfield/TextField.php
new file mode 100644
index 0000000..899393c
--- /dev/null
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/cckfield/TextField.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate_drupal\Plugin\migrate\cckfield\TextField.
+ */
+
+namespace Drupal\migrate_drupal\Plugin\migrate\cckfield;
+
+use Drupal\migrate\Entity\MigrationInterface;
+
+/**
+ * @PluginID("text")
+ */
+class TextField extends CckFieldPluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFieldFormatterMap() {
+    return [
+      'default' => 'text_default',
+      'trimmed' => 'text_trimmed',
+      'plain' => 'basic_string',
+    ];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) {
+    // The data is stored differently depending on whether we're using
+    // db storage.
+    $value_key = $data['db_storage'] ? $field_name : "$field_name/value";
+    $format_key = $data['db_storage'] ? $field_name . '_format' : "$field_name/format" ;
+
+    $migration->setProcessOfProperty("$field_name/value", $value_key);
+
+    // See \Drupal\migrate_drupal\Plugin\migrate\source\d6\User::baseFields(),
+    // signature_format for an example of the YAML that represents this
+    // process array.
+    $process = [
+      [
+        'plugin' => 'static_map',
+        'bypass' => TRUE,
+        'source' => $format_key,
+        'map' => [0 => NULL]
+      ],
+      [
+        'plugin' => 'skip_on_empty',
+        'method' => 'process',
+      ],
+      [
+        'plugin' => 'migration',
+        'migration' => 'd6_filter_format',
+        'source' => $format_key,
+      ],
+    ];
+    $migration->mergeProcessOfProperty("$field_name/format", $process);
+  }
+
+}
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/load/LoadEntity.php b/core/modules/migrate_drupal/src/Plugin/migrate/load/LoadEntity.php
index c3b574c..c360348 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/load/LoadEntity.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/load/LoadEntity.php
@@ -91,9 +91,6 @@ public function loadMultiple(EntityStorageInterface $storage, array $sub_ids = N
               case 'filefield':
                 $this->processFileField($field_name, $data, $migration);
                 break;
-              case 'text':
-                $this->processTextField($field_name, $data, $migration);
-                break;
               default:
                 $migration->setProcessOfProperty($field_name, $field_name);
             }
@@ -114,47 +111,6 @@ public function loadMultiple(EntityStorageInterface $storage, array $sub_ids = N
   }
 
   /**
-   * Manipulate text fields with any per field type processing.
-   *
-   * @param string $field_name
-   *   The field we're processing.
-   * @param array $field_data
-   *   The an array of field type data from the source.
-   * @param \Drupal\migrate\Entity\MigrationInterface $migration
-   *   The migration entity.
-   */
-  protected function processTextField($field_name, $field_data, MigrationInterface $migration) {
-    // The data is stored differently depending on whether we're using
-    // db storage.
-    $value_key = $field_data['db_storage'] ? $field_name : "$field_name/value";
-    $format_key = $field_data['db_storage'] ? $field_name . '_format' : "$field_name/format" ;
-
-    $migration->setProcessOfProperty("$field_name/value", $value_key);
-
-    // See \Drupal\migrate_drupal\Plugin\migrate\source\d6\User::baseFields(),
-    // signature_format for an example of the YAML that represents this
-    // process array.
-    $process = [
-      [
-        'plugin' => 'static_map',
-        'bypass' => TRUE,
-        'source' => $format_key,
-        'map' => [0 => NULL]
-      ],
-      [
-        'plugin' => 'skip_on_empty',
-        'method' => 'process',
-      ],
-      [
-        'plugin' => 'migration',
-        'migration' => 'd6_filter_format',
-        'source' => $format_key,
-      ],
-    ];
-    $migration->mergeProcessOfProperty("$field_name/format", $process);
-  }
-
-  /**
    * Manipulate file fields with any per field type processing.
    *
    * @param string $field_name
