diff --git a/core/includes/entity.inc b/core/includes/entity.inc
index 591f36c..e39adf3 100644
--- a/core/includes/entity.inc
+++ b/core/includes/entity.inc
@@ -535,18 +535,18 @@ function entity_view_multiple(array $entities, $view_mode, $langcode = NULL, $re
 }
 
 /**
- * Returns the entity_display object associated to a bundle and view mode.
+ * Returns the entity view display associated to a bundle and view mode.
  *
  * Use this function when assigning suggested display options for a component
  * in a given view mode. Note that they will only be actually used at render
  * time if the view mode itself is configured to use dedicated display settings
  * for the bundle; if not, the 'default' display is used instead.
  *
- * The function reads the entity_display object from the current configuration,
- * or returns a ready-to-use empty one if configuration entry exists yet for
- * this bundle and view mode. This streamlines manipulation of display objects
- * by always returning a consistent object that reflects the current state of
- * the configuration.
+ * The function reads the entity view display from the current configuration, or
+ * returns a ready-to-use empty one if configuration entry exists yet for this
+ * bundle and view mode. This streamlines manipulation of display objects by
+ * always returning a consistent object that reflects the current state of the
+ * configuration.
  *
  * Example usage:
  * - Set the 'body' field to be displayed and the 'field_image' field to be
@@ -571,19 +571,19 @@ function entity_view_multiple(array $entities, $view_mode, $langcode = NULL, $re
  *   this bundle.
  *
  * @return \Drupal\Core\Entity\Display\EntityViewDisplayInterface
- *   The display object associated to the view mode.
+ *   The view display object associated to the view mode.
  */
 function entity_get_display($entity_type, $bundle, $view_mode) {
   // Try loading the display from configuration.
-  $display = entity_load('entity_display', $entity_type . '.' . $bundle . '.' . $view_mode);
+  $display = entity_load('entity_view_display', $entity_type . '.' . $bundle . '.' . $view_mode);
 
   // If not found, create a fresh display object. We do not preemptively create
-  // new entity_display configuration entries for each existing entity type and
-  // bundle whenever a new view mode becomes available. Instead, configuration
-  // entries are only created when a display object is explicitly configured
-  // and saved.
+  // new entity_view_display configuration entries for each existing entity type
+  // and bundle whenever a new view mode becomes available. Instead,
+  // configuration entries are only created when a display object is explicitly
+  // configured and saved.
   if (!$display) {
-    $display = entity_create('entity_display', array(
+    $display = entity_create('entity_view_display', array(
       'targetEntityType' => $entity_type,
       'bundle' => $bundle,
       'mode' => $view_mode,
@@ -595,7 +595,7 @@ function entity_get_display($entity_type, $bundle, $view_mode) {
 }
 
 /**
- * Returns the entity_display object used to render an entity.
+ * Returns the entity view display object used to render an entity.
  *
  * Depending on the configuration of the view mode for the bundle, this can be
  * either the display object associated to the view mode, or the 'default'
@@ -614,7 +614,7 @@ function entity_get_display($entity_type, $bundle, $view_mode) {
  *  The view mode being rendered.
  *
  * @return \Drupal\Core\Entity\Display\EntityViewDisplayInterface
- *   The display object that should be used to render the entity.
+ *   The view display object that should be used to render the entity.
  *
  * @see entity_get_display().
  */
@@ -630,7 +630,7 @@ function entity_get_render_display(EntityInterface $entity, $view_mode) {
       'default' => $entity_type . '.' . $bundle . '.default',
       $view_mode => $entity_type . '.' . $bundle . '.' . $view_mode,
     );
-    $entity_displays = entity_load_multiple('entity_display', $ids);
+    $entity_displays = entity_load_multiple('entity_view_display', $ids);
     if (isset($entity_displays[$ids[$view_mode]]) && $entity_displays[$ids[$view_mode]]->status()) {
       $render_view_mode = $view_mode;
     }
@@ -645,7 +645,7 @@ function entity_get_render_display(EntityInterface $entity, $view_mode) {
     'bundle' => $bundle,
     'view_mode' => $view_mode,
   );
-  drupal_alter('entity_display', $display, $display_context);
+  drupal_alter('entity_view_display', $display, $display_context);
 
   return $display;
 }
diff --git a/core/lib/Drupal/Core/Entity/EntityViewBuilder.php b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
index 6442577..92e168b 100644
--- a/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
+++ b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php
@@ -163,8 +163,8 @@ protected function getBuildDefaults(EntityInterface $entity, $view_mode, $langco
    * @param \Drupal\Core\Entity\EntityInterface $entity
    *   The entity to be prepared.
    * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
-   *   The entity_display object holding the display options configured for
-   *   the entity components.
+   *   The entity view display holding the display options configured for the
+   *   entity components.
    * @param string $view_mode
    *   The view mode that should be used to prepare the entity.
    * @param string $langcode
diff --git a/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php b/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php
index 0d026f2..6cd0960 100644
--- a/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityViewBuilderInterface.php
@@ -17,8 +17,8 @@
    *
    * @param array $entities
    *   The entities, implementing EntityInterface, whose content is being built.
-   * @param array $displays
-   *   The array of entity_display objects holding the display options
+   * @param \Drupal\Core\Entity\EntityViewDisplayInterface[] $displays
+   *   The array of entity view displays holding the display options
    *   configured for the entity components, keyed by bundle name.
    * @param string $view_mode
    *   The view mode in which the entity is being viewed.
diff --git a/core/modules/comment/comment.api.php b/core/modules/comment/comment.api.php
index 375f6da..0004793 100644
--- a/core/modules/comment/comment.api.php
+++ b/core/modules/comment/comment.api.php
@@ -87,7 +87,7 @@ function hook_comment_load(Drupal\comment\Comment $comments) {
  * @param \Drupal\comment\Entity\Comment $comment $comment
  *   Passes in the comment the action is being performed on.
  * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
- *   The entity_display object holding the display options configured for the
+ *   The entity view display holding the display options configured for the
  *   comment components.
  * @param $view_mode
  *   View mode, e.g. 'full', 'teaser'...
@@ -125,7 +125,7 @@ function hook_comment_view(\Drupal\comment\Entity\Comment $comment, \Drupal\Core
  * @param \Drupal\comment\Entity\Comment $comment
  *   The comment being rendered.
  * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
- *   The entity_display object holding the display options configured for the
+ *   The entity view display holding the display options configured for the
  *   comment components.
  *
  * @see comment_view()
diff --git a/core/modules/entity/entity.install b/core/modules/entity/entity.install
index 5ed9e6b..41aa88b 100644
--- a/core/modules/entity/entity.install
+++ b/core/modules/entity/entity.install
@@ -6,7 +6,7 @@
  */
 
 /**
- * Returns the raw configuration object for an EntityDisplay entity.
+ * Returns the raw configuration object for an EntityViewDisplay entity.
  *
  * The function returns the existing configuration entry if it exists, or
  * creates a fresh structure.
@@ -23,7 +23,7 @@
  */
 function _update_8000_entity_get_display($entity_type, $bundle, $view_mode) {
   $id = $entity_type . '.' . $bundle . '.' . $view_mode;
-  $config = \Drupal::config("entity.display.$id");
+  $config = \Drupal::config("entity.view_display.$id");
   if ($config->get()) {
     return $config;
   }
diff --git a/core/modules/entity/entity.module b/core/modules/entity/entity.module
index 7383920..7848103 100644
--- a/core/modules/entity/entity.module
+++ b/core/modules/entity/entity.module
@@ -100,12 +100,12 @@ function entity_menu() {
  */
 function entity_entity_bundle_rename($entity_type, $bundle_old, $bundle_new) {
   // Rename entity displays.
-  $entity_info = \Drupal::entityManager()->getDefinition('entity_display');
+  $entity_info = \Drupal::entityManager()->getDefinition('entity_view_display');
   if ($bundle_old !== $bundle_new) {
-    $ids = config_get_storage_names_with_prefix('entity.display.' . $entity_type . '.' . $bundle_old . '.');
+    $ids = config_get_storage_names_with_prefix('entity.view_display.' . $entity_type . '.' . $bundle_old . '.');
     foreach ($ids as $id) {
       $id = ConfigStorageController::getIDFromConfigName($id, $entity_info->getConfigPrefix());
-      $display = entity_load('entity_display', $id);
+      $display = entity_load('entity_view_display', $id);
       $new_id = $entity_type . '.' . $bundle_new . '.' . $display->mode;
       $display->id = $new_id;
       $display->bundle = $bundle_new;
@@ -133,12 +133,12 @@ function entity_entity_bundle_rename($entity_type, $bundle_old, $bundle_new) {
  */
 function entity_entity_bundle_delete($entity_type, $bundle) {
   // Remove entity displays of the deleted bundle.
-  $entity_info = \Drupal::entityManager()->getDefinition('entity_display');
-  $ids = config_get_storage_names_with_prefix('entity.display.' . $entity_type . '.' . $bundle . '.');
+  $entity_info = \Drupal::entityManager()->getDefinition('entity_view_display');
+  $ids = config_get_storage_names_with_prefix('entity.view_display.' . $entity_type . '.' . $bundle . '.');
   foreach ($ids as &$id) {
     $id = ConfigStorageController::getIDFromConfigName($id, $entity_info->getConfigPrefix());
   }
-  entity_delete_multiple('entity_display', $ids);
+  entity_delete_multiple('entity_view_display', $ids);
 
   // Remove entity form displays of the deleted bundle.
   $entity_info = \Drupal::entityManager()->getDefinition('entity_form_display');
diff --git a/core/modules/entity/lib/Drupal/entity/Entity/EntityDisplay.php b/core/modules/entity/lib/Drupal/entity/Entity/EntityDisplay.php
deleted file mode 100644
index baf1cbd..0000000
--- a/core/modules/entity/lib/Drupal/entity/Entity/EntityDisplay.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\entity\Entity\EntityDisplay.
- */
-
-namespace Drupal\entity\Entity;
-
-use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
-use Drupal\entity\EntityDisplayBase;
-
-/**
- * Configuration entity that contains display options for all components of a
- * rendered entity in a given view mode.
- *
- * @EntityType(
- *   id = "entity_display",
- *   label = @Translation("Entity display"),
- *   controllers = {
- *     "storage" = "Drupal\Core\Config\Entity\ConfigStorageController"
- *   },
- *   config_prefix = "entity.display",
- *   entity_keys = {
- *     "id" = "id",
- *     "uuid" = "uuid",
- *     "status" = "status"
- *   }
- * )
- */
-class EntityDisplay extends EntityDisplayBase implements EntityViewDisplayInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  protected $displayContext = 'view';
-
-  /**
-   * {@inheritdoc}
-   */
-  public function __construct(array $values, $entity_type) {
-    $this->pluginManager = \Drupal::service('plugin.manager.field.formatter');
-
-    parent::__construct($values, $entity_type);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getRenderer($field_name) {
-    if (isset($this->plugins[$field_name])) {
-      return $this->plugins[$field_name];
-    }
-
-    // Instantiate the formatter object from the stored display properties.
-    if (($configuration = $this->getComponent($field_name)) && isset($configuration['type']) && ($definition = $this->getFieldDefinition($field_name))) {
-      $formatter = $this->pluginManager->getInstance(array(
-        'field_definition' => $definition,
-        'view_mode' => $this->originalMode,
-        // No need to prepare, defaults have been merged in setComponent().
-        'prepare' => FALSE,
-        'configuration' => $configuration
-      ));
-    }
-    else {
-      $formatter = NULL;
-    }
-
-    // Persist the formatter object.
-    $this->plugins[$field_name] = $formatter;
-    return $formatter;
-  }
-
-}
diff --git a/core/modules/entity/lib/Drupal/entity/Entity/EntityFormDisplay.php b/core/modules/entity/lib/Drupal/entity/Entity/EntityFormDisplay.php
index 26de1db..426ccd2 100644
--- a/core/modules/entity/lib/Drupal/entity/Entity/EntityFormDisplay.php
+++ b/core/modules/entity/lib/Drupal/entity/Entity/EntityFormDisplay.php
@@ -8,7 +8,7 @@
 namespace Drupal\entity\Entity;
 
 use Drupal\Core\Entity\Display\EntityFormDisplayInterface;
-use Drupal\entity\EntityDisplayBase;
+use Drupal\entity\EntityDisplay;
 
 /**
  * Configuration entity that contains widget options for all components of a
@@ -28,7 +28,7 @@
  *   }
  * )
  */
-class EntityFormDisplay extends EntityDisplayBase implements EntityFormDisplayInterface, \Serializable {
+class EntityFormDisplay extends EntityDisplay implements EntityFormDisplayInterface, \Serializable {
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/entity/lib/Drupal/entity/Entity/EntityViewDisplay.php b/core/modules/entity/lib/Drupal/entity/Entity/EntityViewDisplay.php
new file mode 100644
index 0000000..2a97aac
--- /dev/null
+++ b/core/modules/entity/lib/Drupal/entity/Entity/EntityViewDisplay.php
@@ -0,0 +1,74 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\entity\Entity\EntityViewDisplay.
+ */
+
+namespace Drupal\entity\Entity;
+
+use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
+use Drupal\entity\EntityDisplay;
+
+/**
+ * Configuration entity that contains display options for all components of a
+ * rendered entity in a given view mode.
+ *
+ * @EntityType(
+ *   id = "entity_view_display",
+ *   label = @Translation("Entity view display"),
+ *   controllers = {
+ *     "storage" = "Drupal\Core\Config\Entity\ConfigStorageController"
+ *   },
+ *   config_prefix = "entity.view_display",
+ *   entity_keys = {
+ *     "id" = "id",
+ *     "uuid" = "uuid",
+ *     "status" = "status"
+ *   }
+ * )
+ */
+class EntityViewDisplay extends EntityDisplay implements EntityViewDisplayInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected $displayContext = 'view';
+
+  /**
+   * {@inheritdoc}
+   */
+  public function __construct(array $values, $entity_type) {
+    $this->pluginManager = \Drupal::service('plugin.manager.field.formatter');
+
+    parent::__construct($values, $entity_type);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getRenderer($field_name) {
+    if (isset($this->plugins[$field_name])) {
+      return $this->plugins[$field_name];
+    }
+
+    // Instantiate the formatter object from the stored display properties.
+    if (($configuration = $this->getComponent($field_name)) && isset($configuration['type']) && ($definition = $this->getFieldDefinition($field_name))) {
+      $formatter = $this->pluginManager->getInstance(array(
+        'field_definition' => $definition,
+        'view_mode' => $this->originalMode,
+        // No need to prepare, defaults have been merged in setComponent().
+        'prepare' => FALSE,
+        'configuration' => $configuration
+      ));
+    }
+    else {
+      $formatter = NULL;
+    }
+
+    // Persist the formatter object.
+    $this->plugins[$field_name] = $formatter;
+    return $formatter;
+  }
+
+}
diff --git a/core/modules/entity/lib/Drupal/entity/EntityDisplay.php b/core/modules/entity/lib/Drupal/entity/EntityDisplay.php
new file mode 100644
index 0000000..ea193b0
--- /dev/null
+++ b/core/modules/entity/lib/Drupal/entity/EntityDisplay.php
@@ -0,0 +1,354 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\entity\EntityDisplay.
+ */
+
+namespace Drupal\entity;
+
+use Drupal\Core\Config\Entity\ConfigEntityBase;
+use Drupal\Core\Entity\EntityStorageControllerInterface;
+use Drupal\Core\Field\FieldDefinitionInterface;
+use Drupal\Core\Entity\Display\EntityDisplayInterface;
+
+/**
+ * Base class for config entity types that store configuration for entity forms
+ * and displays.
+ */
+abstract class EntityDisplay extends ConfigEntityBase implements EntityDisplayInterface {
+
+  /**
+   * Unique ID for the config entity.
+   *
+   * @var string
+   */
+  public $id;
+
+  /**
+   * Unique UUID for the config entity.
+   *
+   * @var string
+   */
+  public $uuid;
+
+  /**
+   * Entity type to be displayed.
+   *
+   * @var string
+   */
+  public $targetEntityType;
+
+  /**
+   * Bundle to be displayed.
+   *
+   * @var string
+   */
+  public $bundle;
+
+  /**
+   * A list of field definitions eligible for configuration in this display.
+   *
+   * @var \Drupal\Core\Field\FieldDefinitionInterface[]
+   */
+  protected $fieldDefinitions;
+
+  /**
+   * View or form mode to be displayed.
+   *
+   * @var string
+   */
+  public $mode;
+
+  /**
+   * Whether this display is enabled or not. If the entity (form) display
+   * is disabled, we'll fall back to the 'default' display.
+   *
+   * @var boolean
+   */
+  public $status;
+
+  /**
+   * List of component display options, keyed by component name.
+   *
+   * @var array
+   */
+  protected $content = array();
+
+  /**
+   * List of components that are set to be hidden.
+   *
+   * @var array
+   */
+  protected $hidden = array();
+
+  /**
+   * The original view or form mode that was requested (case of view/form modes
+   * being configured to fall back to the 'default' display).
+   *
+   * @var string
+   */
+  public $originalMode;
+
+  /**
+   * The plugin objects used for this display, keyed by field name.
+   *
+   * @var array
+   */
+  protected $plugins = array();
+
+  /**
+   * Context in which this entity will be used (e.g. 'display', 'form').
+   *
+   * @var string
+   */
+  protected $displayContext;
+
+  /**
+   * The plugin manager used by this entity type.
+   *
+   * @var \Drupal\Component\Plugin\PluginManagerBase
+   */
+  protected $pluginManager;
+
+  /**
+   * {@inheritdoc}
+   */
+  public function __construct(array $values, $entity_type) {
+    // @todo See http://drupal.org/node/1825044#comment-6847792: contact.module
+    // currently produces invalid entities with a NULL bundle in some cases.
+    // Add the validity checks back when http://drupal.org/node/1856556 is
+    // fixed.
+    // if (!isset($values['targetEntityType']) || !isset($values['bundle']) || !isset($values['mode'])) {
+    //   throw new \InvalidArgumentException('Missing required properties for an EntityDisplay entity.');
+    // }
+
+    // A plugin manager and a context type needs to be set by extending classes.
+    if (!isset($this->pluginManager)) {
+      throw new \RuntimeException('Missing plugin manager.');
+    }
+    if (!isset($this->displayContext)) {
+      throw new \RuntimeException('Missing display context type.');
+    }
+
+    parent::__construct($values, $entity_type);
+
+    $this->originalMode = $this->mode;
+
+    $this->init();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function id() {
+    return $this->targetEntityType . '.' . $this->bundle . '.' . $this->mode;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function preSave(EntityStorageControllerInterface $storage_controller, $update = TRUE) {
+    // Sort elements by weight before saving.
+    uasort($this->content, 'Drupal\Component\Utility\SortArray::sortByWeightElement');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function postSave(EntityStorageControllerInterface $storage_controller, $update = TRUE) {
+    // Reset the render cache for the target entity type.
+    if (\Drupal::entityManager()->hasController($this->targetEntityType, 'view_builder')) {
+      \Drupal::entityManager()->getViewBuilder($this->targetEntityType)->resetCache();
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getExportProperties() {
+    $names = array(
+      'id',
+      'uuid',
+      'targetEntityType',
+      'bundle',
+      'mode',
+      'content',
+      'hidden',
+      'status',
+    );
+    $properties = array();
+    foreach ($names as $name) {
+      $properties[$name] = $this->get($name);
+    }
+
+    // Do not store options for fields whose display is not set to be
+    // configurable.
+    foreach ($this->getFieldDefinitions() as $field_name => $definition) {
+      if (!$definition->isDisplayConfigurable($this->displayContext)) {
+        unset($properties['content'][$field_name]);
+        unset($properties['hidden'][$field_name]);
+      }
+    }
+
+    return $properties;
+  }
+
+  /**
+   * Initializes the display.
+   *
+   * This fills in default options for components:
+   * - that are not explicitly known as either "visible" or "hidden" in the
+   *   display,
+   * - or that are not supposed to be configurable.
+   */
+  protected function init() {
+    // Fill in defaults for extra fields.
+    $extra_fields = field_info_extra_fields($this->targetEntityType, $this->bundle, ($this->displayContext == 'view' ? 'display' : $this->displayContext));
+    foreach ($extra_fields as $name => $definition) {
+      if (!isset($this->content[$name]) && !isset($this->hidden[$name])) {
+        // Extra fields are visible by default unless they explicitly say so.
+        if (!isset($definition['visible']) || $definition['visible'] == TRUE) {
+          $this->content[$name] = array(
+            'weight' => $definition['weight']
+          );
+        }
+        else {
+          $this->hidden[$name] = TRUE;
+        }
+      }
+    }
+
+    // Fill in defaults for fields.
+    $fields = $this->getFieldDefinitions();
+    foreach ($fields as $name => $definition) {
+      if (!$definition->isDisplayConfigurable($this->displayContext) || (!isset($this->content[$name]) && !isset($this->hidden[$name]))) {
+        $options = $definition->getDisplayOptions($this->displayContext);
+
+        if (!empty($options['type']) && $options['type'] == 'hidden') {
+          $this->hidden[$name] = TRUE;
+        }
+        elseif ($options) {
+          $this->content[$name] = $this->pluginManager->prepareConfiguration($definition->getType(), $options);
+        }
+        // Note: (base) fields that do not specify display options are not
+        // tracked in the display at all, in order to avoid cluttering the
+        // configuration that gets saved back.
+      }
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function createCopy($mode) {
+    $display = $this->createDuplicate();
+    $display->mode = $display->originalMode = $mode;
+    return $display;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getComponents() {
+    return $this->content;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getComponent($name) {
+    return isset($this->content[$name]) ? $this->content[$name] : NULL;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setComponent($name, array $options = array()) {
+    // If no weight specified, make sure the field sinks at the bottom.
+    if (!isset($options['weight'])) {
+      $max = $this->getHighestWeight();
+      $options['weight'] = isset($max) ? $max + 1 : 0;
+    }
+
+    // For a field, fill in default options.
+    if ($field_definition = $this->getFieldDefinition($name)) {
+      $options = $this->pluginManager->prepareConfiguration($field_definition->getType(), $options);
+    }
+
+    $this->content[$name] = $options;
+    unset($this->hidden[$name]);
+    unset($this->plugins[$name]);
+
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function removeComponent($name) {
+    $this->hidden[$name] = TRUE;
+    unset($this->content[$name]);
+    unset($this->plugins[$name]);
+
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getHighestWeight() {
+    $weights = array();
+
+    // Collect weights for the components in the display.
+    foreach ($this->content as $options) {
+      if (isset($options['weight'])) {
+        $weights[] = $options['weight'];
+      }
+    }
+
+    // Let other modules feedback about their own additions.
+    $weights = array_merge($weights, module_invoke_all('field_info_max_weight', $this->targetEntityType, $this->bundle, $this->displayContext, $this->mode));
+
+    return $weights ? max($weights) : NULL;
+  }
+
+  /**
+   * Returns the field definition of a field.
+   */
+  protected function getFieldDefinition($field_name) {
+    $definitions = $this->getFieldDefinitions();
+    return isset($definitions[$field_name]) ? $definitions[$field_name] : NULL;
+  }
+
+  /**
+   * Returns the definitions of the fields that are candidate for display.
+   */
+  protected function getFieldDefinitions() {
+    if (!isset($this->fieldDefinitions)) {
+      // @todo Replace this with \Drupal::entityManager()->getFieldDefinition()
+      //   when it can hand the $instance objects (and then reconsider the
+      //   $this->fieldDefinitions static cache ?)
+      //   https://drupal.org/node/2114707
+      $entity_manager = \Drupal::entityManager();
+      $entity_info = $entity_manager->getDefinition($this->targetEntityType);
+      $definitions = array();
+      if ($entity_info->isSubclassOf('\Drupal\Core\Entity\ContentEntityInterface')) {
+        $entity = _field_create_entity_from_ids((object) array('entity_type' => $this->targetEntityType, 'bundle' => $this->bundle, 'entity_id' => NULL));
+        foreach ($entity as $field_name => $items) {
+          $definitions[$field_name] = $items->getFieldDefinition();
+        }
+      }
+
+      // The display only cares about fields that specify display options.
+      // Discard base fields that are not rendered through formatters / widgets.
+      $display_context = $this->displayContext;
+      $this->fieldDefinitions = array_filter($definitions, function (FieldDefinitionInterface $definition) use ($display_context) {
+        return $definition->getDisplayOptions($display_context);
+      });
+    }
+
+    return $this->fieldDefinitions;
+  }
+
+}
diff --git a/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php b/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php
deleted file mode 100644
index afda40a..0000000
--- a/core/modules/entity/lib/Drupal/entity/EntityDisplayBase.php
+++ /dev/null
@@ -1,355 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\entity\EntityDisplayBase.
- */
-
-namespace Drupal\entity;
-
-use Drupal\Core\Config\Entity\ConfigEntityBase;
-use Drupal\Core\Entity\EntityStorageControllerInterface;
-use Drupal\Core\Field\FieldDefinitionInterface;
-use Drupal\Core\Field\FieldDefinition;
-use Drupal\Core\Entity\Display\EntityDisplayInterface;
-
-/**
- * Base class for config entity types that store configuration for entity forms
- * and displays.
- */
-abstract class EntityDisplayBase extends ConfigEntityBase implements EntityDisplayInterface {
-
-  /**
-   * Unique ID for the config entity.
-   *
-   * @var string
-   */
-  public $id;
-
-  /**
-   * Unique UUID for the config entity.
-   *
-   * @var string
-   */
-  public $uuid;
-
-  /**
-   * Entity type to be displayed.
-   *
-   * @var string
-   */
-  public $targetEntityType;
-
-  /**
-   * Bundle to be displayed.
-   *
-   * @var string
-   */
-  public $bundle;
-
-  /**
-   * A list of field definitions eligible for configuration in this display.
-   *
-   * @var \Drupal\Core\Field\FieldDefinitionInterface[]
-   */
-  protected $fieldDefinitions;
-
-  /**
-   * View or form mode to be displayed.
-   *
-   * @var string
-   */
-  public $mode;
-
-  /**
-   * Whether this display is enabled or not. If the entity (form) display
-   * is disabled, we'll fall back to the 'default' display.
-   *
-   * @var boolean
-   */
-  public $status;
-
-  /**
-   * List of component display options, keyed by component name.
-   *
-   * @var array
-   */
-  protected $content = array();
-
-  /**
-   * List of components that are set to be hidden.
-   *
-   * @var array
-   */
-  protected $hidden = array();
-
-  /**
-   * The original view or form mode that was requested (case of view/form modes
-   * being configured to fall back to the 'default' display).
-   *
-   * @var string
-   */
-  public $originalMode;
-
-  /**
-   * The plugin objects used for this display, keyed by field name.
-   *
-   * @var array
-   */
-  protected $plugins = array();
-
-  /**
-   * Context in which this entity will be used (e.g. 'display', 'form').
-   *
-   * @var string
-   */
-  protected $displayContext;
-
-  /**
-   * The plugin manager used by this entity type.
-   *
-   * @var \Drupal\Component\Plugin\PluginManagerBase
-   */
-  protected $pluginManager;
-
-  /**
-   * {@inheritdoc}
-   */
-  public function __construct(array $values, $entity_type) {
-    // @todo See http://drupal.org/node/1825044#comment-6847792: contact.module
-    // currently produces invalid entities with a NULL bundle in some cases.
-    // Add the validity checks back when http://drupal.org/node/1856556 is
-    // fixed.
-    // if (!isset($values['targetEntityType']) || !isset($values['bundle']) || !isset($values['mode'])) {
-    //   throw new \InvalidArgumentException('Missing required properties for an EntityDisplay entity.');
-    // }
-
-    // A plugin manager and a context type needs to be set by extending classes.
-    if (!isset($this->pluginManager)) {
-      throw new \RuntimeException('Missing plugin manager.');
-    }
-    if (!isset($this->displayContext)) {
-      throw new \RuntimeException('Missing display context type.');
-    }
-
-    parent::__construct($values, $entity_type);
-
-    $this->originalMode = $this->mode;
-
-    $this->init();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function id() {
-    return $this->targetEntityType . '.' . $this->bundle . '.' . $this->mode;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function preSave(EntityStorageControllerInterface $storage_controller, $update = TRUE) {
-    // Sort elements by weight before saving.
-    uasort($this->content, 'Drupal\Component\Utility\SortArray::sortByWeightElement');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function postSave(EntityStorageControllerInterface $storage_controller, $update = TRUE) {
-    // Reset the render cache for the target entity type.
-    if (\Drupal::entityManager()->hasController($this->targetEntityType, 'view_builder')) {
-      \Drupal::entityManager()->getViewBuilder($this->targetEntityType)->resetCache();
-    }
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getExportProperties() {
-    $names = array(
-      'id',
-      'uuid',
-      'targetEntityType',
-      'bundle',
-      'mode',
-      'content',
-      'hidden',
-      'status',
-    );
-    $properties = array();
-    foreach ($names as $name) {
-      $properties[$name] = $this->get($name);
-    }
-
-    // Do not store options for fields whose display is not set to be
-    // configurable.
-    foreach ($this->getFieldDefinitions() as $field_name => $definition) {
-      if (!$definition->isDisplayConfigurable($this->displayContext)) {
-        unset($properties['content'][$field_name]);
-        unset($properties['hidden'][$field_name]);
-      }
-    }
-
-    return $properties;
-  }
-
-  /**
-   * Initializes the display.
-   *
-   * This fills in default options for components:
-   * - that are not explicitly known as either "visible" or "hidden" in the
-   *   display,
-   * - or that are not supposed to be configurable.
-   */
-  protected function init() {
-    // Fill in defaults for extra fields.
-    $extra_fields = field_info_extra_fields($this->targetEntityType, $this->bundle, ($this->displayContext == 'view' ? 'display' : $this->displayContext));
-    foreach ($extra_fields as $name => $definition) {
-      if (!isset($this->content[$name]) && !isset($this->hidden[$name])) {
-        // Extra fields are visible by default unless they explicitly say so.
-        if (!isset($definition['visible']) || $definition['visible'] == TRUE) {
-          $this->content[$name] = array(
-            'weight' => $definition['weight']
-          );
-        }
-        else {
-          $this->hidden[$name] = TRUE;
-        }
-      }
-    }
-
-    // Fill in defaults for fields.
-    $fields = $this->getFieldDefinitions();
-    foreach ($fields as $name => $definition) {
-      if (!$definition->isDisplayConfigurable($this->displayContext) || (!isset($this->content[$name]) && !isset($this->hidden[$name]))) {
-        $options = $definition->getDisplayOptions($this->displayContext);
-
-        if (!empty($options['type']) && $options['type'] == 'hidden') {
-          $this->hidden[$name] = TRUE;
-        }
-        elseif ($options) {
-          $this->content[$name] = $this->pluginManager->prepareConfiguration($definition->getType(), $options);
-        }
-        // Note: (base) fields that do not specify display options are not
-        // tracked in the display at all, in order to avoid cluttering the
-        // configuration that gets saved back.
-      }
-    }
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function createCopy($mode) {
-    $display = $this->createDuplicate();
-    $display->mode = $display->originalMode = $mode;
-    return $display;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getComponents() {
-    return $this->content;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getComponent($name) {
-    return isset($this->content[$name]) ? $this->content[$name] : NULL;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function setComponent($name, array $options = array()) {
-    // If no weight specified, make sure the field sinks at the bottom.
-    if (!isset($options['weight'])) {
-      $max = $this->getHighestWeight();
-      $options['weight'] = isset($max) ? $max + 1 : 0;
-    }
-
-    // For a field, fill in default options.
-    if ($field_definition = $this->getFieldDefinition($name)) {
-      $options = $this->pluginManager->prepareConfiguration($field_definition->getType(), $options);
-    }
-
-    $this->content[$name] = $options;
-    unset($this->hidden[$name]);
-    unset($this->plugins[$name]);
-
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function removeComponent($name) {
-    $this->hidden[$name] = TRUE;
-    unset($this->content[$name]);
-    unset($this->plugins[$name]);
-
-    return $this;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getHighestWeight() {
-    $weights = array();
-
-    // Collect weights for the components in the display.
-    foreach ($this->content as $options) {
-      if (isset($options['weight'])) {
-        $weights[] = $options['weight'];
-      }
-    }
-
-    // Let other modules feedback about their own additions.
-    $weights = array_merge($weights, module_invoke_all('field_info_max_weight', $this->targetEntityType, $this->bundle, $this->displayContext, $this->mode));
-
-    return $weights ? max($weights) : NULL;
-  }
-
-  /**
-   * Returns the field definition of a field.
-   */
-  protected function getFieldDefinition($field_name) {
-    $definitions = $this->getFieldDefinitions();
-    return isset($definitions[$field_name]) ? $definitions[$field_name] : NULL;
-  }
-
-  /**
-   * Returns the definitions of the fields that are candidate for display.
-   */
-  protected function getFieldDefinitions() {
-    if (!isset($this->fieldDefinitions)) {
-      // @todo Replace this with \Drupal::entityManager()->getFieldDefinition()
-      //   when it can hand the $instance objects (and then reconsider the
-      //   $this->fieldDefinitions static cache ?)
-      //   https://drupal.org/node/2114707
-      $entity_manager = \Drupal::entityManager();
-      $entity_info = $entity_manager->getDefinition($this->targetEntityType);
-      $definitions = array();
-      if ($entity_info->isSubclassOf('\Drupal\Core\Entity\ContentEntityInterface')) {
-        $entity = _field_create_entity_from_ids((object) array('entity_type' => $this->targetEntityType, 'bundle' => $this->bundle, 'entity_id' => NULL));
-        foreach ($entity as $field_name => $items) {
-          $definitions[$field_name] = $items->getFieldDefinition();
-        }
-      }
-
-      // The display only cares about fields that specify display options.
-      // Discard base fields that are not rendered through formatters / widgets.
-      $display_context = $this->displayContext;
-      $this->fieldDefinitions = array_filter($definitions, function (FieldDefinitionInterface $definition) use ($display_context) {
-        return $definition->getDisplayOptions($display_context);
-      });
-    }
-
-    return $this->fieldDefinitions;
-  }
-
-}
diff --git a/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php b/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php
index 28dc5eb..33538f5 100644
--- a/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php
+++ b/core/modules/entity/lib/Drupal/entity/Tests/EntityDisplayTest.php
@@ -33,7 +33,7 @@ protected function setUp() {
    * Tests basic CRUD operations on EntityDisplay objects.
    */
   public function testEntityDisplayCRUD() {
-    $display = entity_create('entity_display', array(
+    $display = entity_create('entity_view_display', array(
       'targetEntityType' => 'entity_test',
       'bundle' => 'entity_test',
       'mode' => 'default',
@@ -57,7 +57,7 @@ public function testEntityDisplayCRUD() {
 
     // Check that the display can be properly saved and read back.
     $display->save();
-    $display = entity_load('entity_display', $display->id());
+    $display = entity_load('entity_view_display', $display->id());
     foreach (array('component_1', 'component_2', 'component_3') as $name) {
       $this->assertEqual($display->getComponent($name), $expected[$name]);
     }
@@ -71,14 +71,14 @@ public function testEntityDisplayCRUD() {
 
     // Check that the removal is correctly persisted.
     $display->save();
-    $display = entity_load('entity_display', $display->id());
+    $display = entity_load('entity_view_display', $display->id());
     $this->assertNULL($display->getComponent('component_3'));
 
     // Check that CreateCopy() creates a new component that can be correclty
     // saved.
     $new_display = $display->createCopy('other_view_mode');
     $new_display->save();
-    $new_display = entity_load('entity_display', $new_display->id());
+    $new_display = entity_load('entity_view_display', $new_display->id());
     $this->assertEqual($new_display->targetEntityType, $display->targetEntityType);
     $this->assertEqual($new_display->bundle, $display->bundle);
     $this->assertEqual($new_display->mode, 'other_view_mode');
@@ -110,7 +110,7 @@ public function testEntityGetDisplay() {
    */
   public function testExtraFieldComponent() {
     entity_test_create_bundle('bundle_with_extra_fields');
-    $display = entity_create('entity_display', array(
+    $display = entity_create('entity_view_display', array(
       'targetEntityType' => 'entity_test',
       'bundle' => 'bundle_with_extra_fields',
       'mode' => 'default',
@@ -149,7 +149,7 @@ public function testFieldComponent() {
     ));
     $instance->save();
 
-    $display = entity_create('entity_display', array(
+    $display = entity_create('entity_view_display', array(
       'targetEntityType' => 'entity_test',
       'bundle' => 'entity_test',
       'mode' => 'default',
@@ -277,11 +277,11 @@ public function testRenameDeleteBundle() {
     $info->old_type = 'article';
     $info->type = 'article_rename';
     $info->save();
-    $old_display = entity_load('entity_display', 'node.article.default');
+    $old_display = entity_load('entity_view_display', 'node.article.default');
     $this->assertFalse($old_display);
     $old_form_display = entity_load('entity_form_display', 'node.article.default');
     $this->assertFalse($old_form_display);
-    $new_display = entity_load('entity_display', 'node.article_rename.default');
+    $new_display = entity_load('entity_view_display', 'node.article_rename.default');
     $this->assertEqual('article_rename', $new_display->bundle);
     $this->assertEqual('node.article_rename.default', $new_display->id);
     $new_form_display = entity_load('entity_form_display', 'node.article_rename.default');
@@ -290,7 +290,7 @@ public function testRenameDeleteBundle() {
 
     // Delete the bundle.
     $info->delete();
-    $display = entity_load('entity_display', 'node.article_rename.default');
+    $display = entity_load('entity_view_display', 'node.article_rename.default');
     $this->assertFalse($display);
     $form_display = entity_load('entity_form_display', 'node.article_rename.default');
     $this->assertFalse($form_display);
@@ -318,12 +318,12 @@ public function testDeleteFieldInstance() {
     $instance->save();
 
     // Create default and teaser entity display.
-    entity_create('entity_display', array(
+    entity_create('entity_view_display', array(
       'targetEntityType' => 'entity_test',
       'bundle' => 'entity_test',
       'mode' => 'default',
     ))->setComponent($field_name)->save();
-    entity_create('entity_display', array(
+    entity_create('entity_view_display', array(
       'targetEntityType' => 'entity_test',
       'bundle' => 'entity_test',
       'mode' => 'teaser',
diff --git a/core/modules/field/lib/Drupal/field/Entity/FieldInstance.php b/core/modules/field/lib/Drupal/field/Entity/FieldInstance.php
index 5f98b85..f9dad3c 100644
--- a/core/modules/field/lib/Drupal/field/Entity/FieldInstance.php
+++ b/core/modules/field/lib/Drupal/field/Entity/FieldInstance.php
@@ -431,7 +431,7 @@ public static function postDelete(EntityStorageControllerInterface $storage_cont
       if (!$instance->deleted) {
         $view_modes = array('default' => array()) + entity_get_view_modes($instance->entity_type);
         foreach (array_keys($view_modes) as $mode) {
-          $displays_to_update['entity_display'][$instance->entity_type . '.' . $instance->bundle . '.' . $mode][] = $instance->field->name;
+          $displays_to_update['entity_view_display'][$instance->entity_type . '.' . $instance->bundle . '.' . $mode][] = $instance->field->name;
         }
         $form_modes = array('default' => array()) + entity_get_form_modes($instance->entity_type);
         foreach (array_keys($form_modes) as $mode) {
diff --git a/core/modules/field_ui/lib/Drupal/field_ui/Access/ViewModeAccessCheck.php b/core/modules/field_ui/lib/Drupal/field_ui/Access/ViewModeAccessCheck.php
index 393fa7b..59797ed 100644
--- a/core/modules/field_ui/lib/Drupal/field_ui/Access/ViewModeAccessCheck.php
+++ b/core/modules/field_ui/lib/Drupal/field_ui/Access/ViewModeAccessCheck.php
@@ -51,7 +51,7 @@ public function access(Route $route, Request $request, AccountInterface $account
       if (!$view_mode || $view_mode == 'default') {
         $visibility = TRUE;
       }
-      elseif ($entity_display = $this->entityManager->getStorageController('entity_display')->load($entity_type . '.' . $bundle . '.' . $view_mode)) {
+      elseif ($entity_display = $this->entityManager->getStorageController('entity_view_display')->load($entity_type . '.' . $bundle . '.' . $view_mode)) {
         $visibility = $entity_display->status();
       }
 
diff --git a/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverview.php b/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverview.php
index 5b2046b..7ea2077 100644
--- a/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverview.php
+++ b/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverview.php
@@ -86,7 +86,7 @@ protected function buildFieldRow(FieldDefinitionInterface $field_definition, Ent
   /**
    * {@inheritdoc}
    */
-  protected function buildExtraFieldRow($field_id, $extra_field, $entity_display) {
+  protected function buildExtraFieldRow($field_id, $extra_field, EntityDisplayInterface $entity_display) {
     $extra_field_row = parent::buildExtraFieldRow($field_id, $extra_field, $entity_display);
 
     // Insert an empty placeholder for the label column.
@@ -150,7 +150,7 @@ protected function getDisplayModes() {
    * {@inheritdoc}
    */
   protected function getDisplayType() {
-    return 'entity_display';
+    return 'entity_view_display';
   }
 
   /**
diff --git a/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php b/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php
index 6a80350..3903d40 100644
--- a/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php
+++ b/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php
@@ -430,7 +430,7 @@ protected function buildFieldRow(FieldDefinitionInterface $field_definition, Ent
    * @return array
    *   A table row array.
    */
-  protected function buildExtraFieldRow($field_id, $extra_field, $entity_display) {
+  protected function buildExtraFieldRow($field_id, $extra_field, EntityDisplayInterface $entity_display) {
     $display_options = $entity_display->getComponent($field_id);
 
     $extra_field_row = array(
diff --git a/core/modules/forum/config/entity.display.taxonomy_term.forums.default.yml b/core/modules/forum/config/entity.display.taxonomy_term.forums.default.yml
deleted file mode 100644
index ca4f340..0000000
--- a/core/modules/forum/config/entity.display.taxonomy_term.forums.default.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-id: taxonomy_term.forums.default
-uuid: adaef6a9-8dc0-4f2e-9858-88daac440aa9
-targetEntityType: taxonomy_term
-bundle: forums
-mode: default
-status: true
-content:
-  description:
-    weight: 0
diff --git a/core/modules/forum/config/entity.view_display.taxonomy_term.forums.default.yml b/core/modules/forum/config/entity.view_display.taxonomy_term.forums.default.yml
new file mode 100644
index 0000000..ca4f340
--- /dev/null
+++ b/core/modules/forum/config/entity.view_display.taxonomy_term.forums.default.yml
@@ -0,0 +1,9 @@
+id: taxonomy_term.forums.default
+uuid: adaef6a9-8dc0-4f2e-9858-88daac440aa9
+targetEntityType: taxonomy_term
+bundle: forums
+mode: default
+status: true
+content:
+  description:
+    weight: 0
diff --git a/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php b/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php
index 57869d4..cbbfe37 100644
--- a/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php
+++ b/core/modules/image/lib/Drupal/image/Entity/ImageStyle.php
@@ -145,7 +145,7 @@ protected static function replaceImageStyle(ImageStyleInterface $style) {
     if ($style->id() != $style->getOriginalId()) {
       // Loop through all entity displays looking for formatters / widgets using
       // the image style.
-      foreach (entity_load_multiple('entity_display') as $display) {
+      foreach (entity_load_multiple('entity_view_display') as $display) {
         foreach ($display->getComponents() as $name => $options) {
           if (isset($options['type']) && $options['type'] == 'image' && $options['settings']['image_style'] == $style->getOriginalId()) {
             $options['settings']['image_style'] = $style->id();
diff --git a/core/modules/node/node.api.php b/core/modules/node/node.api.php
index d53673c..a7d5e68 100644
--- a/core/modules/node/node.api.php
+++ b/core/modules/node/node.api.php
@@ -789,8 +789,8 @@ function hook_node_submit(\Drupal\Core\Entity\EntityInterface $node, $form, &$fo
  * @param \Drupal\Core\Entity\EntityInterface $node
  *   The node that is being assembled for rendering.
  * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
- *   The entity_display object holding the display options configured for the
- *   node components.
+ *   The entity view display holding the display options configured for the node
+ *   components.
  * @param string $view_mode
  *   The $view_mode parameter from node_view().
  * @param string $langcode
@@ -831,8 +831,8 @@ function hook_node_view(\Drupal\Core\Entity\EntityInterface $node, \Drupal\Core\
  * @param \Drupal\Core\Entity\EntityInterface $node
  *   The node being rendered.
  * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
- *   The entity_display object holding the display options configured for the
- *   node components.
+ *   The entity view display holding the display options configured for the node
+ *   components.
  *
  * @see node_view()
  * @see hook_entity_view_alter()
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index b457cb9..8d0e27b 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -184,9 +184,9 @@ function node_entity_bundle_info() {
 }
 
 /**
- * Implements hook_entity_display_alter().
+ * Implements hook_entity_view_display_alter().
  */
-function node_entity_display_alter(EntityViewDisplayInterface $display, $context) {
+function node_entity_view_display_alter(EntityViewDisplayInterface $display, $context) {
   if ($context['entity_type'] == 'node') {
     // Hide field labels in search index.
     if ($context['view_mode'] == 'search_index') {
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/Tests/DrupalUnitTestBaseTest.php b/core/modules/simpletest/lib/Drupal/simpletest/Tests/DrupalUnitTestBaseTest.php
index 8568672..22bc3ad 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/Tests/DrupalUnitTestBaseTest.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/Tests/DrupalUnitTestBaseTest.php
@@ -230,7 +230,7 @@ function testEnableModulesFixedList() {
     $this->enableModules(array('field_test'));
 
     // Create a field and an instance.
-    entity_create('entity_display', array(
+    entity_create('entity_view_display', array(
       'targetEntityType' => 'entity_test',
       'bundle' => 'entity_test',
       'mode' => 'default',
diff --git a/core/modules/system/entity.api.php b/core/modules/system/entity.api.php
index 3eb29dd..87eb1b5 100644
--- a/core/modules/system/entity.api.php
+++ b/core/modules/system/entity.api.php
@@ -438,7 +438,7 @@ function hook_entity_query_alter(\Drupal\Core\Entity\Query\QueryInterface $query
  * @param \Drupal\Core\Entity\EntityInterface $entity
  *   The entity object.
  * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
- *   The entity_display object holding the display options configured for the
+ *   The entity view display holding the display options configured for the
  *   entity components.
  * @param $view_mode
  *   The view mode the entity is rendered in.
@@ -484,7 +484,7 @@ function hook_entity_view(\Drupal\Core\Entity\EntityInterface $entity, \Drupal\C
  * @param \Drupal\Core\Entity\EntityInterface $entity
  *   The entity object being rendered.
  * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
- *   The entity_display object holding the display options configured for the
+ *   The entity view display holding the display options configured for the
  *   entity components.
  *
  * @see hook_entity_view()
@@ -514,8 +514,8 @@ function hook_entity_view_alter(&$build, Drupal\Core\Entity\EntityInterface $ent
  *   The type of entities being viewed (i.e. node, user, comment).
  * @param array $entities
  *   The entities keyed by entity ID.
- * @param array $display
- *   The array of entity_display objects holding the display options configured
+ * @param \Drupal\Core\Entity\EntityViewDisplayInterface[] $displays
+ *   The array of entity view displays holding the display options configured
  *   for the entity components, keyed by bundle name.
  * @param string $view_mode
  *   The view mode.
@@ -563,7 +563,7 @@ function hook_entity_view_mode_alter(&$view_mode, Drupal\Core\Entity\EntityInter
  * Alters the settings used for displaying an entity.
  *
  * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
- *   The entity_display object that will be used to display the entity
+ *   The entity view display that will be used to display the entity
  *   components.
  * @param array $context
  *   An associative array containing:
@@ -571,7 +571,7 @@ function hook_entity_view_mode_alter(&$view_mode, Drupal\Core\Entity\EntityInter
  *   - bundle: The bundle, e.g., 'page' or 'article'.
  *   - view_mode: The view mode, e.g. 'full', 'teaser'...
  */
-function hook_entity_display_alter(\Drupal\Core\Entity\Display\EntityViewDisplayInterface $display, array $context) {
+function hook_entity_view_display_alter(\Drupal\Core\Entity\Display\EntityViewDisplayInterface $display, array $context) {
   // Leave field labels out of the search index.
   if ($context['entity_type'] == 'node' && $context['view_mode'] == 'search_index') {
     foreach ($display->getComponents() as $name => $options) {
diff --git a/core/modules/taxonomy/taxonomy.api.php b/core/modules/taxonomy/taxonomy.api.php
index 5ddc3c0..5894b3a 100644
--- a/core/modules/taxonomy/taxonomy.api.php
+++ b/core/modules/taxonomy/taxonomy.api.php
@@ -250,8 +250,8 @@ function hook_taxonomy_term_delete(Drupal\taxonomy\Term $term) {
  * @param \Drupal\taxonomy\Entity\Term $term
  *   The term that is being assembled for rendering.
  * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
- *   The entity_display object holding the display options configured for the
- *   term components.
+ *   The entity view display holding the display options configured for the term
+ *   components.
  * @param $view_mode
  *   The $view_mode parameter from taxonomy_term_view().
  * @param $langcode
@@ -289,8 +289,8 @@ function hook_taxonomy_term_view(\Drupal\taxonomy\Entity\Term $term, \Drupal\Cor
  * @param \Drupal\taxonomy\Entity\Term $term
  *   The taxonomy term being rendered.
  * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
- *   The entity_display object holding the display options configured for the
- *   term components.
+ *   The entity view display holding the display options configured for the term
+ *   components.
  *
  * @see hook_entity_view_alter()
  */
diff --git a/core/modules/user/user.api.php b/core/modules/user/user.api.php
index 2d2fbd9..a6a10e2 100644
--- a/core/modules/user/user.api.php
+++ b/core/modules/user/user.api.php
@@ -314,8 +314,8 @@ function hook_user_logout($account) {
  * @param \Drupal\user\UserInterface $account
  *   The user object on which the operation is being performed.
  * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
- *   The entity_display object holding the display options configured for the
- *   user components.
+ *   The entity view display holding the display options configured for the user
+ *   components.
  * @param $view_mode
  *   View mode, e.g. 'full'.
  * @param $langcode
@@ -354,8 +354,8 @@ function hook_user_view(\Drupal\user\UserInterface $account, \Drupal\Core\Entity
  * @param \Drupal\user\UserInterface $account
  *   The user account being rendered.
  * @param \Drupal\Core\Entity\Display\EntityViewDisplayInterface $display
- *   The entity_display object holding the display options configured for the
- *   user components.
+ *   The entity view display holding the display options configured for the user
+ *   components.
  *
  * @see user_view()
  * @see hook_entity_view_alter()
diff --git a/core/profiles/standard/config/entity.display.node.article.default.yml b/core/profiles/standard/config/entity.display.node.article.default.yml
deleted file mode 100644
index 33d77f0..0000000
--- a/core/profiles/standard/config/entity.display.node.article.default.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-id: node.article.default
-uuid: 3ca9876e-7b93-48bd-8f00-b4ce293ad554
-targetEntityType: node
-bundle: article
-mode: default
-status: 1
-content:
-  body:
-    label: hidden
-    type: text_default
-    weight: '0'
-    settings: {  }
-  field_tags:
-    type: taxonomy_term_reference_link
-    weight: '10'
-    label: above
-    settings: {  }
-  field_image:
-    label: hidden
-    type: image
-    settings:
-      image_style: large
-      image_link: ''
-    weight: '-1'
diff --git a/core/profiles/standard/config/entity.display.node.article.teaser.yml b/core/profiles/standard/config/entity.display.node.article.teaser.yml
deleted file mode 100644
index a11caae..0000000
--- a/core/profiles/standard/config/entity.display.node.article.teaser.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-id: node.article.teaser
-uuid: 7156f406-c67c-4d1f-bd35-53dbf20ee7e4
-targetEntityType: node
-bundle: article
-mode: teaser
-status: 1
-content:
-  body:
-    label: hidden
-    type: text_summary_or_trimmed
-    weight: '0'
-    settings:
-      trim_length: '600'
-  field_tags:
-    type: taxonomy_term_reference_link
-    weight: '10'
-    label: above
-    settings: {  }
-  field_image:
-    label: hidden
-    type: image
-    settings:
-      image_style: medium
-      image_link: content
-    weight: '-1'
diff --git a/core/profiles/standard/config/entity.display.user.user.compact.yml b/core/profiles/standard/config/entity.display.user.user.compact.yml
deleted file mode 100644
index 85b7992..0000000
--- a/core/profiles/standard/config/entity.display.user.user.compact.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-id: user.user.compact
-uuid: 70911b08-bf47-4a3f-b400-f99cf136effd
-targetEntityType: user
-bundle: user
-mode: compact
-content:
-  user_picture:
-    label: hidden
-    type: image
-    settings:
-      image_style: thumbnail
-      image_link: content
-    weight: 0
-hidden:
-  member_for: true
-status: true
diff --git a/core/profiles/standard/config/entity.display.user.user.default.yml b/core/profiles/standard/config/entity.display.user.user.default.yml
deleted file mode 100644
index b19d602..0000000
--- a/core/profiles/standard/config/entity.display.user.user.default.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-id: user.user.default
-uuid: 7a60b270-a584-46dc-ba00-a510230e9f45
-targetEntityType: user
-bundle: user
-mode: default
-content:
-  user_picture:
-    label: hidden
-    type: image
-    settings:
-      image_style: thumbnail
-      image_link: content
-    weight: 0
-status: true
diff --git a/core/profiles/standard/config/entity.view_display.node.article.default.yml b/core/profiles/standard/config/entity.view_display.node.article.default.yml
new file mode 100644
index 0000000..33d77f0
--- /dev/null
+++ b/core/profiles/standard/config/entity.view_display.node.article.default.yml
@@ -0,0 +1,24 @@
+id: node.article.default
+uuid: 3ca9876e-7b93-48bd-8f00-b4ce293ad554
+targetEntityType: node
+bundle: article
+mode: default
+status: 1
+content:
+  body:
+    label: hidden
+    type: text_default
+    weight: '0'
+    settings: {  }
+  field_tags:
+    type: taxonomy_term_reference_link
+    weight: '10'
+    label: above
+    settings: {  }
+  field_image:
+    label: hidden
+    type: image
+    settings:
+      image_style: large
+      image_link: ''
+    weight: '-1'
diff --git a/core/profiles/standard/config/entity.view_display.node.article.teaser.yml b/core/profiles/standard/config/entity.view_display.node.article.teaser.yml
new file mode 100644
index 0000000..a11caae
--- /dev/null
+++ b/core/profiles/standard/config/entity.view_display.node.article.teaser.yml
@@ -0,0 +1,25 @@
+id: node.article.teaser
+uuid: 7156f406-c67c-4d1f-bd35-53dbf20ee7e4
+targetEntityType: node
+bundle: article
+mode: teaser
+status: 1
+content:
+  body:
+    label: hidden
+    type: text_summary_or_trimmed
+    weight: '0'
+    settings:
+      trim_length: '600'
+  field_tags:
+    type: taxonomy_term_reference_link
+    weight: '10'
+    label: above
+    settings: {  }
+  field_image:
+    label: hidden
+    type: image
+    settings:
+      image_style: medium
+      image_link: content
+    weight: '-1'
diff --git a/core/profiles/standard/config/entity.view_display.user.user.compact.yml b/core/profiles/standard/config/entity.view_display.user.user.compact.yml
new file mode 100644
index 0000000..85b7992
--- /dev/null
+++ b/core/profiles/standard/config/entity.view_display.user.user.compact.yml
@@ -0,0 +1,16 @@
+id: user.user.compact
+uuid: 70911b08-bf47-4a3f-b400-f99cf136effd
+targetEntityType: user
+bundle: user
+mode: compact
+content:
+  user_picture:
+    label: hidden
+    type: image
+    settings:
+      image_style: thumbnail
+      image_link: content
+    weight: 0
+hidden:
+  member_for: true
+status: true
diff --git a/core/profiles/standard/config/entity.view_display.user.user.default.yml b/core/profiles/standard/config/entity.view_display.user.user.default.yml
new file mode 100644
index 0000000..b19d602
--- /dev/null
+++ b/core/profiles/standard/config/entity.view_display.user.user.default.yml
@@ -0,0 +1,14 @@
+id: user.user.default
+uuid: 7a60b270-a584-46dc-ba00-a510230e9f45
+targetEntityType: user
+bundle: user
+mode: default
+content:
+  user_picture:
+    label: hidden
+    type: image
+    settings:
+      image_style: thumbnail
+      image_link: content
+    weight: 0
+status: true
