diff --git a/core/config/schema/core.entity.schema.yml b/core/config/schema/core.entity.schema.yml
index b4adf40..368a41c 100644
--- a/core/config/schema/core.entity.schema.yml
+++ b/core/config/schema/core.entity.schema.yml
@@ -157,3 +157,84 @@ entity_form_display.field.boolean_checkbox:
       label: 'Settings'
       sequence:
         - type: string
+
+entity_view_display.field.telephone_link:
+  type: entity_field_view_display_base
+  label: 'Telephone link format settings'
+  mapping:
+    settings:
+      type: mapping
+      label: 'Settings'
+      mapping:
+        title:
+          type: label
+          label: 'Title to replace basic numeric telephone number display.'
+
+entity_form_display.field.telephone_default:
+  type: entity_field_form_display_base
+  label: 'Telephone default format settings'
+  mapping:
+    settings:
+      type: mapping
+      label: 'Settings'
+      mapping:
+        placeholder:
+          type: label
+          label: 'Placeholder'
+
+entity_view_display.field.link:
+  type: entity_field_view_display_base
+  label: 'Link format settings'
+  mapping:
+    settings:
+      type: mapping
+      label: 'Settings'
+      mapping:
+        trim_length:
+          type: integer
+          label: 'Trim link text length'
+        url_only:
+          type: boolean
+          label: 'URL only'
+        url_plain:
+          type: boolean
+          label: 'Show URL as plain text'
+        rel:
+          type: string
+          label: 'Add rel="nofollow" to links'
+        target:
+          type: string
+          label: 'Open link in new window'
+
+entity_view_display.field.link_separate:
+  type: entity_field_view_display_base
+  label: 'Link format settings'
+  mapping:
+    settings:
+      type: mapping
+      label: 'Settings'
+      mapping:
+        trim_length:
+          type: integer
+          label: 'Trim link text length'
+        rel:
+          type: string
+          label: 'Add rel="nofollow" to links'
+        target:
+          type: string
+          label: 'Open link in new window'
+
+entity_form_display.field.link_default:
+  type: entity_field_form_display_base
+  label: 'Link format settings'
+  mapping:
+    settings:
+      type: mapping
+      label: 'Settings'
+      mapping:
+        placeholder_url:
+          type: string
+          label: 'Placeholder for URL'
+        placeholder_title:
+          type: label
+          label: 'Placeholder for link text'
diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 537c58f..c00a5e1 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -2227,6 +2227,33 @@ function template_preprocess_field_multiple_value_form(&$variables) {
 }
 
 /**
+ * Prepares variables for separated link field templates.
+ *
+ * This template outputs a separate title and link.
+ *
+ * Default template: link-formatter-link-separate.html.twig.
+ *
+ * @param array $variables
+ *   An associative array containing:
+ *   - title: (optional) A descriptive or alternate title for the link, which
+ *     may be different than the actual link text.
+ *   - url_title: The anchor text for the link.
+ *   - url: A \Drupal\Core\Url object.
+ */
+function template_preprocess_link_formatter_link_separate(&$variables) {
+  if (!empty($variables['title'])) {
+    $variables['title'] = String::checkPlain($variables['title']);
+  }
+
+  if (!$variables['url']->isExternal()) {
+    $variables['link'] = \Drupal::linkGenerator()->generateFromUrl($variables['url_title'], $variables['url']);
+  }
+  else {
+    $variables['link'] = l($variables['url_title'], $variables['url']->getPath(), $variables['url']->getOptions());
+  }
+}
+
+/**
  * Prepares variables for breadcrumb templates.
  *
  * Default template: breadcrumb.html.twig.
@@ -2442,5 +2469,9 @@ function drupal_common_theme() {
       'render element' => 'element',
       'template' => 'field-multiple-value-form',
     ),
+    'link_formatter_link_separate' => array(
+      'variables' => array('title' => NULL, 'url_title' => NULL, 'url' => NULL),
+      'template' => 'link-formatter-link-separate',
+    ),
   );
 }
diff --git a/core/modules/link/src/LinkItemInterface.php b/core/lib/Drupal/Core/Field/LinkItemInterface.php
similarity index 85%
rename from core/modules/link/src/LinkItemInterface.php
rename to core/lib/Drupal/Core/Field/LinkItemInterface.php
index f494e08..c472db2 100644
--- a/core/modules/link/src/LinkItemInterface.php
+++ b/core/lib/Drupal/Core/Field/LinkItemInterface.php
@@ -2,12 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\link\LinkItemInterface.
+ * Contains \Drupal\Core\Field\LinkItemInterface.
  */
 
-namespace Drupal\link;
-
-use Drupal\Core\Field\FieldItemInterface;
+namespace Drupal\Core\Field;
 
 /**
  * Defines an interface for the link field item.
diff --git a/core/modules/link/src/Plugin/Field/FieldFormatter/LinkFormatter.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/LinkFormatter.php
similarity index 96%
rename from core/modules/link/src/Plugin/Field/FieldFormatter/LinkFormatter.php
rename to core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/LinkFormatter.php
index 05caf97..4cf92c5 100644
--- a/core/modules/link/src/Plugin/Field/FieldFormatter/LinkFormatter.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/LinkFormatter.php
@@ -2,17 +2,17 @@
 
 /**
  * @file
- * Contains \Drupal\link\Plugin\field\formatter\LinkFormatter.
+ * Contains \Drupal\Core\Field\Plugin\field\formatter\LinkFormatter.
  */
 
-namespace Drupal\link\Plugin\Field\FieldFormatter;
+namespace Drupal\Core\Field\Plugin\Field\FieldFormatter;
 
 use Drupal\Component\Utility\String;
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\FormatterBase;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Url;
-use Drupal\link\LinkItemInterface;
+use Drupal\Core\Field\LinkItemInterface;
 
 /**
  * Plugin implementation of the 'link' formatter.
@@ -186,7 +186,7 @@ public function viewElements(FieldItemListInterface $items) {
   /**
    * Builds the \Drupal\Core\Url object for a link field item.
    *
-   * @param \Drupal\link\LinkItemInterface $item
+   * @param \Drupal\Core\Field\LinkItemInterface $item
    *   The link field item being rendered.
    *
    * @return \Drupal\Core\Url
diff --git a/core/modules/link/src/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php
similarity index 95%
rename from core/modules/link/src/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php
rename to core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php
index 40daa44..870c2bf 100644
--- a/core/modules/link/src/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\link\Plugin\field\formatter\LinkSeparateFormatter.
+ * Contains \Drupal\Core\Field\Plugin\field\formatter\LinkSeparateFormatter.
  *
  * @todo
  * Merge into 'link' formatter once there is a #type like 'item' that
@@ -10,7 +10,7 @@
  * http://drupal.org/node/1829202
  */
 
-namespace Drupal\link\Plugin\Field\FieldFormatter;
+namespace Drupal\Core\Field\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FieldItemListInterface;
 
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php
index 544ae46..e42303d 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/StringFormatter.php
@@ -20,6 +20,7 @@
  *   field_types = {
  *     "string",
  *     "string_long",
+ *     "telephone",
  *     "email"
  *   },
  *   quickedit = {
diff --git a/core/modules/telephone/src/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
similarity index 94%
rename from core/modules/telephone/src/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
rename to core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
index 5c65cf6..b31af34 100644
--- a/core/modules/telephone/src/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\telephone\Plugin\field\formatter\TelephoneLinkFormatter.
+ * Contains \Drupal\Core\Field\Plugin\field\formatter\TelephoneLinkFormatter.
  */
 
-namespace Drupal\telephone\Plugin\Field\FieldFormatter;
+namespace Drupal\Core\Field\Plugin\Field\FieldFormatter;
 
 use Drupal\Core\Field\FormatterBase;
 use Drupal\Core\Field\FieldItemListInterface;
diff --git a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/LinkItem.php
similarity index 96%
rename from core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
rename to core/lib/Drupal/Core/Field/Plugin/Field/FieldType/LinkItem.php
index f8639bb..5819317 100644
--- a/core/modules/link/src/Plugin/Field/FieldType/LinkItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/LinkItem.php
@@ -2,17 +2,17 @@
 
 /**
  * @file
- * Contains \Drupal\link\Plugin\Field\FieldType\LinkItem.
+ * Contains \Drupal\Core\Field\Plugin\Field\FieldType\LinkItem.
  */
 
-namespace Drupal\link\Plugin\Field\FieldType;
+namespace Drupal\Core\Field\Plugin\Field\FieldType;
 
 use Drupal\Core\Field\FieldItemBase;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\TypedData\DataDefinition;
 use Drupal\Core\TypedData\MapDataDefinition;
-use Drupal\link\LinkItemInterface;
+use Drupal\Core\Field\LinkItemInterface;
 
 /**
  * Plugin implementation of the 'link' field type.
diff --git a/core/modules/telephone/src/Plugin/Field/FieldType/TelephoneItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/TelephoneItem.php
similarity index 93%
rename from core/modules/telephone/src/Plugin/Field/FieldType/TelephoneItem.php
rename to core/lib/Drupal/Core/Field/Plugin/Field/FieldType/TelephoneItem.php
index 2b1a5b6..7011b33 100644
--- a/core/modules/telephone/src/Plugin/Field/FieldType/TelephoneItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/TelephoneItem.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\telephone\Plugin\Field\FieldType\TelephoneItem.
+ * Contains \Drupal\Core\Field\Plugin\Field\FieldType\TelephoneItem.
  */
 
-namespace Drupal\telephone\Plugin\Field\FieldType;
+namespace Drupal\Core\Field\Plugin\Field\FieldType;
 
 use Drupal\Core\Field\FieldItemBase;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
diff --git a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/LinkWidget.php
similarity index 97%
rename from core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
rename to core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/LinkWidget.php
index cb95532..0f9e982 100644
--- a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/LinkWidget.php
@@ -2,15 +2,15 @@
 
 /**
  * @file
- * Contains \Drupal\link\Plugin\Field\FieldWidget\LinkWidget.
+ * Contains \Drupal\Core\Field\Plugin\Field\FieldWidget\LinkWidget.
  */
 
-namespace Drupal\link\Plugin\Field\FieldWidget;
+namespace Drupal\Core\Field\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\WidgetBase;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\link\LinkItemInterface;
+use Drupal\Core\Field\LinkItemInterface;
 
 /**
  * Plugin implementation of the 'link' widget.
diff --git a/core/modules/telephone/src/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
similarity index 93%
rename from core/modules/telephone/src/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
rename to core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
index 2be36da..555ece4 100644
--- a/core/modules/telephone/src/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\telephone\Plugin\Field\FieldWidget\TelephoneDefaultWidget.
+ * Contains \Drupal\Core\Field\Plugin\Field\FieldWidget\TelephoneDefaultWidget.
  */
 
-namespace Drupal\telephone\Plugin\Field\FieldWidget;
+namespace Drupal\Core\Field\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\WidgetBase;
diff --git a/core/modules/link/src/Plugin/Validation/Constraint/LinkTypeConstraint.php b/core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/LinkTypeConstraint.php
similarity index 86%
rename from core/modules/link/src/Plugin/Validation/Constraint/LinkTypeConstraint.php
rename to core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/LinkTypeConstraint.php
index 89ff6da..c5189c0 100644
--- a/core/modules/link/src/Plugin/Validation/Constraint/LinkTypeConstraint.php
+++ b/core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/LinkTypeConstraint.php
@@ -2,12 +2,12 @@
 
 /**
  * @file
- * Contains \Drupal\link\Plugin\Validation\Constraint\LinkTypeConstraint.
+ * Contains \Drupal\Core\Validation\Plugin\Validation\Constraint\LinkTypeConstraint.
  */
 
-namespace Drupal\link\Plugin\Validation\Constraint;
+namespace Drupal\Core\Validation\Plugin\Validation\Constraint;
 
-use Drupal\link\LinkItemInterface;
+use Drupal\Core\Field\LinkItemInterface;
 use Symfony\Component\Validator\Constraint;
 use Symfony\Component\Validator\ConstraintValidatorInterface;
 use Symfony\Component\Validator\ExecutionContextInterface;
@@ -49,7 +49,7 @@ public function validatedBy() {
   public function validate($value, Constraint $constraint) {
     if (isset($value)) {
       $url_is_valid = FALSE;
-      /** @var $link_item \Drupal\link\LinkItemInterface */
+      /** @var $link_item \Drupal\Core\Field\LinkItemInterface */
       $link_item = $value;
       $link_type = $link_item->getFieldDefinition()->getSetting('link_type');
       $url_string = $link_item->url;
diff --git a/core/modules/block_content/src/Tests/BlockContentFieldTest.php b/core/modules/block_content/src/Tests/BlockContentFieldTest.php
index 2b8023c..b19243f 100644
--- a/core/modules/block_content/src/Tests/BlockContentFieldTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentFieldTest.php
@@ -11,8 +11,6 @@
  * Tests block fieldability.
  *
  * @group block_content
- * @todo Consider removing this test when https://drupal.org/node/1822000 is
- * fixed.
  */
 class BlockContentFieldTest extends BlockContentTestBase {
 
@@ -21,7 +19,7 @@ class BlockContentFieldTest extends BlockContentTestBase {
    *
    * @var array
    */
-  public static $modules = array('block', 'block_content', 'link');
+  public static $modules = array('block', 'block_content');
 
   /**
    * The created field.
diff --git a/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php b/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php
index a02c3d0..3a93df8 100644
--- a/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php
+++ b/core/modules/field/src/Tests/FieldImportDeleteUninstallTest.php
@@ -22,7 +22,7 @@ class FieldImportDeleteUninstallTest extends FieldUnitTestBase {
    *
    * @var array
    */
-  public static $modules = array('telephone');
+  public static $modules = array('filter');
 
   protected function setUp() {
     parent::setUp();
@@ -55,7 +55,7 @@ public function testImportDeleteUninstall() {
     $field_storage = entity_create('field_storage_config', array(
       'name' => 'field_test',
       'entity_type' => 'entity_test',
-      'type' => 'telephone',
+      'type' => 'text',
     ));
     $field_storage->save();
     entity_create('field_instance_config', array(
@@ -87,7 +87,7 @@ public function testImportDeleteUninstall() {
 
     // Stage uninstall of the Telephone module.
     $core_extension = \Drupal::config('core.extension')->get();
-    unset($core_extension['module']['telephone']);
+    unset($core_extension['module']['text']);
     $staging->write('core.extension', $core_extension);
 
     // Stage the field deletion
@@ -101,7 +101,7 @@ public function testImportDeleteUninstall() {
     // Telephone module.
     $this->configImporter()->import();
 
-    $this->assertFalse(\Drupal::moduleHandler()->moduleExists('telephone'));
+    $this->assertFalse(\Drupal::moduleHandler()->moduleExists('text'));
     $this->assertFalse(entity_load_by_uuid('field_storage_config', $field_storage->uuid()), 'The test field has been deleted by the configuration synchronization');
     $deleted_storages = \Drupal::state()->get('field.storage.deleted') ?: array();
     $this->assertFalse(isset($deleted_storages[$field_storage->uuid()]), 'Telephone field has been completed removed from the system.');
@@ -116,7 +116,7 @@ public function testImportAlreadyDeletedUninstall() {
     $field_storage = entity_create('field_storage_config', array(
       'name' => 'field_test',
       'entity_type' => 'entity_test',
-      'type' => 'telephone',
+      'type' => 'text',
     ));
     $field_storage->save();
     $field_storage_uuid = $field_storage->uuid();
@@ -148,7 +148,7 @@ public function testImportAlreadyDeletedUninstall() {
 
     // Stage uninstall of the Telephone module.
     $core_extension = \Drupal::config('core.extension')->get();
-    unset($core_extension['module']['telephone']);
+    unset($core_extension['module']['text']);
     $staging->write('core.extension', $core_extension);
 
     $deleted_storages = \Drupal::state()->get('field.storage.deleted') ?: array();
@@ -161,7 +161,7 @@ public function testImportAlreadyDeletedUninstall() {
     // Telephone module.
     $this->configImporter()->import();
 
-    $this->assertFalse(\Drupal::moduleHandler()->moduleExists('telephone'));
+    $this->assertFalse(\Drupal::moduleHandler()->moduleExists('text'));
     $deleted_storages = \Drupal::state()->get('field.storage.deleted') ?: array();
     $this->assertFalse(isset($deleted_storages[$field_storage_uuid]), 'Field has been completed removed from the system.');
   }
diff --git a/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php b/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php
index 67dc92d..a48a499 100644
--- a/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php
+++ b/core/modules/field/src/Tests/FieldImportDeleteUninstallUiTest.php
@@ -23,7 +23,7 @@ class FieldImportDeleteUninstallUiTest extends FieldTestBase {
    *
    * @var array
    */
-  public static $modules = array('entity_test', 'telephone', 'config', 'filter', 'text');
+  public static $modules = array('entity_test', 'options', 'config', 'filter', 'text');
 
   protected function setUp() {
     parent::setUp();
@@ -40,7 +40,10 @@ public function testImportDeleteUninstall() {
     $field_storage = entity_create('field_storage_config', array(
       'name' => 'field_tel',
       'entity_type' => 'entity_test',
-      'type' => 'telephone',
+      'type' => 'list_integer',
+      'settings' => array(
+        'allowed_values' => array(1 => 'One', 2 => 'Two', 3 => 'Three'),
+      ),
     ));
     $field_storage->save();
     entity_create('field_instance_config', array(
@@ -62,7 +65,7 @@ public function testImportDeleteUninstall() {
 
     // Create an entity which has values for the telephone and text field.
     $entity = entity_create('entity_test');
-    $value = '+0123456789';
+    $value = 1;
     $entity->field_tel = $value;
     $entity->field_text = $this->randomMachineName(20);
     $entity->name->value = $this->randomMachineName();
@@ -85,7 +88,7 @@ public function testImportDeleteUninstall() {
 
     // Stage uninstall of the Telephone module.
     $core_extension = \Drupal::config('core.extension')->get();
-    unset($core_extension['module']['telephone']);
+    unset($core_extension['module']['options']);
     $staging->write('core.extension', $core_extension);
 
     // Stage the field deletion
diff --git a/core/modules/link/src/Tests/LinkFieldTest.php b/core/modules/field/src/Tests/Link/LinkFieldTest.php
similarity index 99%
rename from core/modules/link/src/Tests/LinkFieldTest.php
rename to core/modules/field/src/Tests/Link/LinkFieldTest.php
index c7eb596..529e090 100644
--- a/core/modules/link/src/Tests/LinkFieldTest.php
+++ b/core/modules/field/src/Tests/Link/LinkFieldTest.php
@@ -2,19 +2,19 @@
 
 /**
  * @file
- * Contains Drupal\link\Tests\LinkFieldTest.
+ * Contains \Drupal\field\Tests\Link\LinkFieldTest.
  */
 
-namespace Drupal\link\Tests;
+namespace Drupal\field\Tests\Link;
 
 use Drupal\Component\Utility\String;
-use Drupal\link\LinkItemInterface;
+use Drupal\Core\Field\LinkItemInterface;
 use Drupal\simpletest\WebTestBase;
 
 /**
  * Tests link field widgets and formatters.
  *
- * @group link
+ * @group field
  */
 class LinkFieldTest extends WebTestBase {
 
@@ -23,7 +23,7 @@ class LinkFieldTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('entity_test', 'link');
+  public static $modules = array('entity_test');
 
   /**
    * A field to use in this test class.
diff --git a/core/modules/link/src/Tests/LinkFieldUITest.php b/core/modules/field/src/Tests/Link/LinkFieldUITest.php
similarity index 91%
rename from core/modules/link/src/Tests/LinkFieldUITest.php
rename to core/modules/field/src/Tests/Link/LinkFieldUITest.php
index 43a4335..4e21148 100644
--- a/core/modules/link/src/Tests/LinkFieldUITest.php
+++ b/core/modules/field/src/Tests/Link/LinkFieldUITest.php
@@ -2,17 +2,17 @@
 
 /**
  * @file
- * Contains Drupal\link\Tests\LinkFieldUITest.
+ * Contains \Drupal\field\Tests\Link\LinkFieldUITest.
  */
 
-namespace Drupal\link\Tests;
+namespace Drupal\field\Tests\Link;
 
 use Drupal\simpletest\WebTestBase;
 
 /**
  * Tests link field UI functionality.
  *
- * @group link
+ * @group field
  */
 class LinkFieldUITest extends WebTestBase {
 
@@ -21,7 +21,7 @@ class LinkFieldUITest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'link', 'field_ui');
+  public static $modules = array('node', 'field_ui');
 
   protected function setUp() {
     parent::setUp();
diff --git a/core/modules/link/src/Tests/LinkItemTest.php b/core/modules/field/src/Tests/Link/LinkItemTest.php
similarity index 95%
rename from core/modules/link/src/Tests/LinkItemTest.php
rename to core/modules/field/src/Tests/Link/LinkItemTest.php
index d2e15d5..358662f 100644
--- a/core/modules/link/src/Tests/LinkItemTest.php
+++ b/core/modules/field/src/Tests/Link/LinkItemTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\link\Tests\LinkItemTest.
+ * Contains \Drupal\field\Tests\Link\LinkItemTest.
  */
 
-namespace Drupal\link\Tests;
+namespace Drupal\field\Tests\Link;
 
 use Drupal\Component\Utility\UrlHelper;
 use Drupal\Core\Field\FieldItemListInterface;
@@ -15,17 +15,10 @@
 /**
  * Tests the new entity API for the link field type.
  *
- * @group link
+ * @group field
  */
 class LinkItemTest extends FieldUnitTestBase {
 
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('link');
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/telephone/src/Tests/TelephoneFieldTest.php b/core/modules/field/src/Tests/Telephone/TelephoneFieldTest.php
similarity index 93%
rename from core/modules/telephone/src/Tests/TelephoneFieldTest.php
rename to core/modules/field/src/Tests/Telephone/TelephoneFieldTest.php
index f686517..0ff855a 100644
--- a/core/modules/telephone/src/Tests/TelephoneFieldTest.php
+++ b/core/modules/field/src/Tests/Telephone/TelephoneFieldTest.php
@@ -2,17 +2,17 @@
 
 /**
  * @file
- * Contains \Drupal\telephone\TelephoneFieldTest.
+ * Contains \Drupal\field\Tests\Telephone\TelephoneFieldTest.
  */
 
-namespace Drupal\telephone\Tests;
+namespace Drupal\field\Tests\Telephone;
 
 use Drupal\simpletest\WebTestBase;
 
 /**
  * Tests the creation of telephone fields.
  *
- * @group telephone
+ * @group field
  */
 class TelephoneFieldTest extends WebTestBase {
 
@@ -24,7 +24,6 @@ class TelephoneFieldTest extends WebTestBase {
   public static $modules = array(
     'field',
     'node',
-    'telephone'
   );
 
   protected $instance;
@@ -45,7 +44,7 @@ protected function setUp() {
    */
   function testTelephoneField() {
 
-    // Add the telepone field to the article content type.
+    // Add the telephone field to the article content type.
     entity_create('field_storage_config', array(
       'name' => 'field_telephone',
       'entity_type' => 'node',
diff --git a/core/modules/telephone/src/Tests/TelephoneItemTest.php b/core/modules/field/src/Tests/Telephone/TelephoneItemTest.php
similarity index 90%
rename from core/modules/telephone/src/Tests/TelephoneItemTest.php
rename to core/modules/field/src/Tests/Telephone/TelephoneItemTest.php
index 8b25689..8ce4746 100644
--- a/core/modules/telephone/src/Tests/TelephoneItemTest.php
+++ b/core/modules/field/src/Tests/Telephone/TelephoneItemTest.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\field\Tests\TelephoneItemTest.
+ * Contains \Drupal\field\Tests\Telephone\TelephoneItemTest.
  */
 
-namespace Drupal\telephone\Tests;
+namespace Drupal\field\Tests\Telephone;
 
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\FieldItemInterface;
@@ -14,17 +14,10 @@
 /**
  * Tests the new entity API for the telephone field type.
  *
- * @group telephone
+ * @group field
  */
 class TelephoneItemTest extends FieldUnitTestBase {
 
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = array('telephone');
-
   protected function setUp() {
     parent::setUp();
 
diff --git a/core/modules/field/src/Tests/reEnableModuleFieldTest.php b/core/modules/field/src/Tests/reEnableModuleFieldTest.php
index dcbd20a..c064050 100644
--- a/core/modules/field/src/Tests/reEnableModuleFieldTest.php
+++ b/core/modules/field/src/Tests/reEnableModuleFieldTest.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\field\reEnableModuleFieldTest.
+ * Contains \Drupal\field\Tests\reEnableModuleFieldTest.
  */
 
 namespace Drupal\field\Tests;
@@ -24,9 +24,8 @@ class reEnableModuleFieldTest extends WebTestBase {
   public static $modules = array(
     'field',
     'node',
-    // We use telephone module instead of test_field because test_field is
-    // hidden and does not display on the admin/modules page.
-    'telephone'
+    // Using field_test module while it displays on the admin/modules page.
+    'field_test',
   );
 
   protected function setUp() {
@@ -42,11 +41,11 @@ protected function setUp() {
    */
   function testReEnabledField() {
 
-    // Add a telephone field to the article content type.
+    // Add a test field to the article content type.
     $field_storage = entity_create('field_storage_config', array(
-      'name' => 'field_telephone',
+      'name' => 'field_test',
       'entity_type' => 'node',
-      'type' => 'telephone',
+      'type' => 'test_field',
     ));
     $field_storage->save();
     entity_create('field_instance_config', array(
@@ -56,33 +55,29 @@ function testReEnabledField() {
     ))->save();
 
     entity_get_form_display('node', 'article', 'default')
-      ->setComponent('field_telephone', array(
-        'type' => 'telephone_default',
-        'settings' => array(
-          'placeholder' => '123-456-7890',
-        ),
+      ->setComponent('field_test', array(
+        'type' => 'test_field_widget',
       ))
       ->save();
 
     entity_get_display('node', 'article', 'default')
-      ->setComponent('field_telephone', array(
-        'type' => 'telephone_link',
+      ->setComponent('field_test', array(
+        'type' => 'field_test_default',
         'weight' => 1,
       ))
       ->save();
 
-    // Display the article node form and verify the telephone widget is present.
+    // Display the article node form and verify the field widget is present.
     $this->drupalGet('node/add/article');
-    $this->assertFieldByName("field_telephone[0][value]", '', 'Widget found.');
+    $this->assertFieldByName('field_test[0][value]', '', 'Widget found.');
 
-    // Submit an article node with a telephone field so data exist for the
-    // field.
+    // Submit an article node with the field so data exist for the field.
     $edit = array(
       'title[0][value]' => $this->randomMachineName(),
-      'field_telephone[0][value]' => "123456789",
+      'field_test[0][value]' => '1234567',
     );
     $this->drupalPostForm(NULL, $edit, t('Save'));
-    $this->assertRaw('<a href="tel:123456789">');
+    $this->assertRaw('1234567');
 
     // Test that the module can't be uninstalled from the UI while there is data
     // for it's fields.
@@ -96,7 +91,6 @@ function testReEnabledField() {
     $this->cronRun();
     $this->assertNoText('Fields type(s) in use');
     $this->assertNoText('Fields pending deletion');
-
   }
 
 }
diff --git a/core/modules/link/config/schema/link.schema.yml b/core/modules/link/config/schema/link.schema.yml
deleted file mode 100644
index 9ff05fc..0000000
--- a/core/modules/link/config/schema/link.schema.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-# Schema for the configuration files of the Link module.
-
-entity_view_display.field.link:
-  type: entity_field_view_display_base
-  label: 'Link format settings'
-  mapping:
-    settings:
-      type: mapping
-      label: 'Settings'
-      mapping:
-        trim_length:
-          type: integer
-          label: 'Trim link text length'
-        url_only:
-          type: boolean
-          label: 'URL only'
-        url_plain:
-          type: boolean
-          label: 'Show URL as plain text'
-        rel:
-          type: string
-          label: 'Add rel="nofollow" to links'
-        target:
-          type: string
-          label: 'Open link in new window'
-
-entity_view_display.field.link_separate:
-  type: entity_field_view_display_base
-  label: 'Link format settings'
-  mapping:
-    settings:
-      type: mapping
-      label: 'Settings'
-      mapping:
-        trim_length:
-          type: integer
-          label: 'Trim link text length'
-        rel:
-          type: string
-          label: 'Add rel="nofollow" to links'
-        target:
-          type: string
-          label: 'Open link in new window'
-
-entity_form_display.field.link_default:
-  type: entity_field_form_display_base
-  label: 'Link format settings'
-  mapping:
-    settings:
-      type: mapping
-      label: 'Settings'
-      mapping:
-        placeholder_url:
-          type: string
-          label: 'Placeholder for URL'
-        placeholder_title:
-          type: label
-          label: 'Placeholder for link text'
diff --git a/core/modules/link/link.info.yml b/core/modules/link/link.info.yml
deleted file mode 100644
index 509d2ba..0000000
--- a/core/modules/link/link.info.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: Link
-type: module
-description: 'Provides a simple link field type.'
-core: 8.x
-package: Field types
-version: VERSION
-dependencies:
-  - field
diff --git a/core/modules/link/link.module b/core/modules/link/link.module
deleted file mode 100644
index d33181e..0000000
--- a/core/modules/link/link.module
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/**
- * @file
- * Defines simple link field types.
- */
-
-use Drupal\Component\Utility\String;
-use Drupal\Core\Routing\RouteMatchInterface;
-
-/**
- * Implements hook_help().
- */
-function link_help($route_name, RouteMatchInterface $route_match) {
-  switch ($route_name) {
-    case 'help.page.link':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Link module allows you to create fields that contain internal or external URLs and optional link text. See the <a href="!field">Field module help</a> and the <a href="!field_ui">Field UI help</a> pages for general information on fields and how to create and manage them. For more information, see the <a href="!link_documentation">online documentation for the Link module</a>.', array('!field' => \Drupal::url('help.page', array('name' => 'field')), '!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')), '!link_documentation' => 'https://drupal.org/documentation/modules/link')) . '</p>';
-      $output .= '<h3>' . t('Uses') . '</h3>';
-      $output .= '<dl>';
-      $output .= '<dt>' . t('Managing and displaying link fields') . '</dt>';
-      $output .= '<dd>' . t('The <em>settings</em> and the <em>display</em> of the link field can be configured separately. See the <a href="!field_ui">Field UI help</a> for more information on how to manage fields and their display.', array('!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')))) . '</dd>';
-      $output .= '<dt>' . t('Adding link text') . '</dt>';
-      $output .= '<dd>' . t('In the field settings you can define additional link text to be <em>optional</em> or <em>required</em> in any link field.') . '</dd>';
-      $output .= '<dt>' . t('Displaying link text') . '</dt>';
-      $output .= '<dd>' . t('If link text has been submitted for a URL, then by default this link text is displayed as a link to the URL. If you want to display both the link text <em>and</em> the URL, choose the appropriate link format from the drop-down menu in the <em>Manage display</em> page. If you only want to display the URL even if link text has been submitted, choose <em>Link</em> as the format, and then change its <em>Format settings</em> to display <em>URL only</em>.') . '</dd>';
-      $output .= '<dt>' . t('Adding attributes to links') . '</dt>';
-      $output .= '<dd>' . t('You can add attributes to links, by changing the <em>Format settings</em> in the <em>Manage display</em> page. Adding <em>rel="nofollow"</em> notifies search engines that links should not be followed.') . '</dd>';
-      $output .= '<dt>' . t('Validating URLs') . '</dt>';
-      $output .= '<dd>' . t('All links are validated after a link field is filled in. They can include anchors or query strings.') . '</dd>';
-      $output .= '</dl>';
-      return $output;
-  }
-}
-
-/**
- * Implements hook_theme().
- */
-function link_theme() {
-  return array(
-    'link_formatter_link_separate' => array(
-      'variables' => array('title' => NULL, 'url_title' => NULL, 'url' => NULL),
-      'template' => 'link-formatter-link-separate',
-    ),
-  );
-}
-
-/**
- * Prepares variables for separated link field templates.
- *
- * This template outputs a separate title and link.
- *
- * Default template: link-formatter-link-separate.html.twig.
- *
- * @param array $variables
- *   An associative array containing:
- *   - title: (optional) A descriptive or alternate title for the link, which
- *     may be different than the actual link text.
- *   - url_title: The anchor text for the link.
- *   - url: A \Drupal\Core\Url object.
- */
-function template_preprocess_link_formatter_link_separate(&$variables) {
-  if (!empty($variables['title'])) {
-    $variables['title'] = String::checkPlain($variables['title']);
-  }
-
-  if (!$variables['url']->isExternal()) {
-    $variables['link'] = \Drupal::linkGenerator()->generateFromUrl($variables['url_title'], $variables['url']);
-  }
-  else {
-    $variables['link'] = l($variables['url_title'], $variables['url']->getPath(), $variables['url']->getOptions());
-  }
-}
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
index c13d023..4c40b38 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
@@ -34,7 +34,6 @@ class MigrateDrupal6Test extends MigrateFullDrupalTestBase {
     'file',
     'forum',
     'image',
-    'link',
     'locale',
     'menu_ui',
     'node',
@@ -44,7 +43,6 @@ class MigrateDrupal6Test extends MigrateFullDrupalTestBase {
     'statistics',
     'syslog',
     'taxonomy',
-    'telephone',
     'text',
     'update',
     'views',
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
index 4be0bea..6d765c3 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldFormatterSettingsTest.php
@@ -23,7 +23,7 @@ class MigrateFieldFormatterSettingsTest extends MigrateDrupalTestBase {
    *
    * @var array
    */
-  public static $modules = array('node', 'field', 'datetime', 'image', 'text', 'link', 'file', 'telephone');
+  public static $modules = array('node', 'field', 'datetime', 'image', 'text', 'file');
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php
index d154214..325a4c3 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldInstanceTest.php
@@ -7,9 +7,9 @@
 
 namespace Drupal\migrate_drupal\Tests\d6;
 
+use Drupal\Core\Field\LinkItemInterface;
 use Drupal\migrate\MigrateExecutable;
 use Drupal\migrate_drupal\Tests\MigrateDrupalTestBase;
-use Drupal\link\LinkItemInterface;
 
 /**
  * Migrate field instances.
@@ -24,8 +24,6 @@ class MigrateFieldInstanceTest extends MigrateDrupalTestBase {
    * @var array
    */
   public static $modules = array(
-    'telephone',
-    'link',
     'file',
     'image',
     'datetime',
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php
index 85ef644..75e53c6 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldTest.php
@@ -22,7 +22,7 @@ class MigrateFieldTest extends MigrateDrupalTestBase {
    *
    * @var array
    */
-  public static $modules = array('field', 'telephone', 'link', 'file', 'image', 'datetime', 'node', 'options');
+  public static $modules = array('field', 'file', 'image', 'datetime', 'node', 'options');
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php
index 09b922c..eca5390 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFieldWidgetSettingsTest.php
@@ -24,8 +24,6 @@ class MigrateFieldWidgetSettingsTest extends MigrateDrupalTestBase {
    */
   public static $modules = array(
     'field',
-    'telephone',
-    'link',
     'file',
     'image',
     'datetime',
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php
index 8184dce..829077b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateProfileValuesTest.php
@@ -26,7 +26,6 @@ class MigrateProfileValuesTest extends MigrateDrupalTestBase {
    * @var array
    */
   static $modules = array(
-    'link',
     'options',
     'datetime',
     'text',
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php
index 8666cfa..7400853 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityDisplayTest.php
@@ -23,7 +23,7 @@ class MigrateUserProfileEntityDisplayTest extends MigrateDrupalTestBase {
    *
    * @var array
    */
-  static $modules = array('link', 'options', 'datetime');
+  static $modules = array('options', 'datetime');
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php
index 82503d6..a206e53 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileEntityFormDisplayTest.php
@@ -18,7 +18,7 @@
  */
 class MigrateUserProfileEntityFormDisplayTest extends MigrateDrupalTestBase {
 
-  static $modules = array('link', 'options', 'datetime');
+  static $modules = array('options', 'datetime');
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php
index 2093ed4..094c789 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldInstanceTest.php
@@ -17,7 +17,7 @@
  */
 class MigrateUserProfileFieldInstanceTest extends MigrateDrupalTestBase {
 
-  static $modules = array('field', 'link', 'options', 'datetime', 'text');
+  static $modules = array('field', 'options', 'datetime', 'text');
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php
index 94f479d..4646e8e 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserProfileFieldTest.php
@@ -17,7 +17,7 @@
  */
 class MigrateUserProfileFieldTest extends MigrateDrupalTestBase {
 
-  static $modules = array('link', 'options', 'datetime');
+  static $modules = array('options', 'datetime');
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php
index 2c72e19..9e02b43 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateUserTest.php
@@ -24,7 +24,6 @@ class MigrateUserTest extends MigrateDrupalTestBase {
    * @var array
    */
   static $modules = array(
-    'link',
     'options',
     'datetime',
     'text',
diff --git a/core/modules/rdf/src/Tests/Field/LinkFieldRdfaTest.php b/core/modules/rdf/src/Tests/Field/LinkFieldRdfaTest.php
index 8c23c07..9785e20 100644
--- a/core/modules/rdf/src/Tests/Field/LinkFieldRdfaTest.php
+++ b/core/modules/rdf/src/Tests/Field/LinkFieldRdfaTest.php
@@ -21,7 +21,7 @@ class LinkFieldRdfaTest extends FieldRdfaTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = array('link', 'text');
+  public static $modules = array('text');
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php b/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php
index 85662d2..e6d2b22 100644
--- a/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php
+++ b/core/modules/rdf/src/Tests/Field/TelephoneFieldRdfaTest.php
@@ -28,7 +28,7 @@ class TelephoneFieldRdfaTest extends FieldRdfaTestBase {
   /**
    * {@inheritdoc}
    */
-  public static $modules = array('telephone', 'text');
+  public static $modules = array('text');
 
   protected function setUp() {
     parent::setUp();
diff --git a/core/modules/link/templates/link-formatter-link-separate.html.twig b/core/modules/system/templates/link-formatter-link-separate.html.twig
similarity index 100%
rename from core/modules/link/templates/link-formatter-link-separate.html.twig
rename to core/modules/system/templates/link-formatter-link-separate.html.twig
diff --git a/core/modules/telephone/config/schema/telephone.schema.yml b/core/modules/telephone/config/schema/telephone.schema.yml
deleted file mode 100644
index 73f740c..0000000
--- a/core/modules/telephone/config/schema/telephone.schema.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-# Schema for the configuration files of the Telephone module.
-
-entity_view_display.field.telephone_link:
-  type: entity_field_view_display_base
-  label: 'Telephone link format settings'
-  mapping:
-    settings:
-      type: mapping
-      label: 'Settings'
-      mapping:
-        title:
-          type: label
-          label: 'Title to replace basic numeric telephone number display.'
-
-entity_form_display.field.telephone_default:
-  type: entity_field_form_display_base
-  label: 'Telephone default format settings'
-  mapping:
-    settings:
-      type: mapping
-      label: 'Settings'
-      mapping:
-        placeholder:
-          type: label
-          label: 'Placeholder'
diff --git a/core/modules/telephone/telephone.info.yml b/core/modules/telephone/telephone.info.yml
deleted file mode 100644
index 3e27ccb..0000000
--- a/core/modules/telephone/telephone.info.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-name: Telephone
-type: module
-description: 'Defines a field type for telephone numbers.'
-package: Field types
-version: VERSION
-core: 8.x
-dependencies:
-  - field
diff --git a/core/modules/telephone/telephone.module b/core/modules/telephone/telephone.module
deleted file mode 100644
index 6c5d524..0000000
--- a/core/modules/telephone/telephone.module
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-/**
- * @file
- * Defines a simple telephone number field type.
- */
-
-use Drupal\Core\Routing\RouteMatchInterface;
-
-/**
- * Implements hook_help().
- */
-function telephone_help($route_name, RouteMatchInterface $route_match) {
-  switch ($route_name) {
-    case 'help.page.telephone':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Telephone module allows you to create fields that contain telephone numbers. See the <a href="!field">Field module help</a> and the <a href="!field_ui">Field UI help</a> pages for general information on fields and how to create and manage them. For more information, see the <a href="!telephone_documentation">online documentation for the Telephone module</a>.', array('!field' => \Drupal::url('help.page', array('name' => 'field')), '!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')), '!telephone_documentation' => 'https://drupal.org/documentation/modules/telephone')) . '</p>';
-      $output .= '<h3>' . t('Uses') . '</h3>';
-      $output .= '<dl>';
-      $output .= '<dt>' . t('Managing and displaying telephone fields') . '</dt>';
-      $output .= '<dd>' . t('The <em>settings</em> and the <em>display</em> of the telephone field can be configured separately. See the <a href="!field_ui">Field UI help</a> for more information on how to manage fields and their display.', array('!field_ui' => \Drupal::url('help.page', array('name' => 'field_ui')))) . '</dd>';
-      $output .= '<dt>' . t('Displaying telephone numbers as links') . '</dt>';
-      $output .= '<dd>' . t('Telephone numbers can be displayed as links with the scheme name <em>tel:</em> by choosing the <em>Telephone</em> display format on the <em>Manage display</em> page. Any spaces will be stripped out of the link text.') . '</dd>';
-      $output .= '</dl>';
-      return $output;
-  }
-}
-
-/**
- * Implements hook_field_formatter_info_alter().
- */
-function telephone_field_formatter_info_alter(&$info) {
-  $info['string']['field_types'][] = 'telephone';
-}
