diff --git a/config/install/diff.plugins.yml b/config/install/diff.plugins.yml
index 0beaec3..e69de29 100644
--- a/config/install/diff.plugins.yml
+++ b/config/install/diff.plugins.yml
@@ -1,163 +0,0 @@
-field_types:
-  datetime:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  file:
-    type: file_field_diff_builder
-    settings:
-      show_id: 1
-      compare_description_field: 0
-      compare_display_field: 0
-      property_separator: nl
-      show_header: 1
-      markdown: drupal_html_to_text
-  image:
-    type: image_field_diff_builder
-    settings:
-      show_id: 1
-      compare_alt_field: 0
-      compare_title_field: 0
-      property_separator: nl
-      show_header: 1
-      markdown: drupal_html_to_text
-  list_string:
-    type: list_field_diff_builder
-    settings:
-      compare: key
-      show_header: 1
-      markdown: drupal_html_to_text
-  list_float:
-    type: list_field_diff_builder
-    settings:
-      compare: key
-      show_header: 1
-      markdown: drupal_html_to_text
-  list_integer:
-    type: list_field_diff_builder
-    settings:
-      compare: key
-      show_header: 1
-      markdown: drupal_html_to_text
-  path:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  taxonomy_term_reference:
-    type: term_reference_field_diff_builder
-    settings:
-      show_name: 1
-      show_id: 0
-      show_header: 1
-      markdown: drupal_html_to_text
-  text:
-    type: text_field_diff_builder
-    settings:
-      compare_format: 0
-      show_header: 1
-      markdown: drupal_html_to_text
-  text_long:
-    type: text_field_diff_builder
-    settings:
-      compare_format: 0
-      show_header: 1
-      markdown: drupal_html_to_text
-  text_with_summary:
-    type: text_summary_field_diff_builder
-    settings:
-      compare_format: 0
-      compare_summary: 0
-      show_header: 1
-      markdown: drupal_html_to_text
-  email:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  string_long:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  integer:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  created:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  string:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  changed:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  uuid:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  entity_reference:
-    type: entity_reference_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-      compare_entity_reference: 1
-  language:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  float:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  map:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  timestamp:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  boolean:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  uri:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  decimal:
-    type: core_field_diff_builder
-    settings:
-      show_header: 1
-      markdown: drupal_html_to_text
-  link:
-    type: link_field_diff_builder
-    settings:
-      compare_title: 0
-      compare_uri: 1
-      show_header: 1
-      markdown: drupal_html_to_text
-  comment:
-    type: comment_field_diff_builder
-    settings:
-      compare_key: 0
-      compare_string: 1
-      show_header: 1
-      markdown: drupal_html_to_text
diff --git a/config/install/diff.settings.yml b/config/install/diff.settings.yml
index 467dcab..ac1f6f5 100644
--- a/config/install/diff.settings.yml
+++ b/config/install/diff.settings.yml
@@ -3,21 +3,3 @@ general_settings:
   radio_behavior: simple
   context_lines_leading: 1
   context_lines_trailing: 1
-entity:
-  node:
-    nid: 0
-    uuid: 0
-    vid: 0
-    type: 0
-    langcode: 0
-    title: 1
-    uid: 0
-    status: 0
-    created: 0
-    changed: 0
-    promote: 0
-    sticky: 0
-    revision_timestamp: 0
-    revision_uid: 0
-    revision_log: 0
-    path: 0
diff --git a/config/schema/diff.schema.yml b/config/schema/diff.schema.yml
index f27a1ca..59a3fa0 100644
--- a/config/schema/diff.schema.yml
+++ b/config/schema/diff.schema.yml
@@ -40,12 +40,15 @@ diff.settings:
 
 diff.plugins:
   type: config_object
-  label: 'Field Type'
+  label: 'Entity Type'
   mapping:
-    field_types:
+    fields:
       type: sequence
+      label: 'Field'
       sequence:
-        - type: mapping
+        type: sequence
+        sequence:
+          type: mapping
           label: 'Diff configuration for a field type'
           mapping:
             type:
diff --git a/diff.links.task.yml b/diff.links.task.yml
index 80da8b5..caa8a36 100644
--- a/diff.links.task.yml
+++ b/diff.links.task.yml
@@ -3,17 +3,7 @@ diff.general_settings:
   base_route: diff.general_settings
   title: Settings
 
-diff.field_types_list:
-  route_name: diff.field_types_list
+diff.fields_list:
+  route_name: diff.fields_list
   base_route: diff.general_settings
-  title: Configurable Fields
-
-diff.entities:
-  route_name: diff.node_settings
-  title: Base Fields
-  base_route: diff.general_settings
-
-diff.node_entities:
-  route_name: diff.node_settings
-  title: Node
-  parent_id: diff.entities
+  title: Fields
diff --git a/diff.module b/diff.module
index c36a2bf..c6cb61a 100644
--- a/diff.module
+++ b/diff.module
@@ -82,7 +82,28 @@ function diff_help($route_name, RouteMatchInterface $route_match) {
     case 'diff.revision_overview':
       return '<p>' . t('Revisions allow you to track differences between multiple versions of your content, and revert to older versions.') . '</p>';
 
-    case 'diff.field_types_list':
-      return '<p>' . t('This table provides a summary of the field type support found on the system. For every field type a diff plugin can be selected and configured.') . '</p>';
+    case 'diff.fields_list':
+      return '<p>' . t('This table provides a summary of the field support found on the system. For every field a diff plugin can be selected and configured.') . '</p>';
   }
 }
+
+function _diff_field_label($entity_type, $field_name) {
+  $labels = [];
+  // Count the amount of instances per label per field.
+  foreach (array_keys(\Drupal::service('entity_type.bundle.info')->getBundleInfo($entity_type)) as $bundle) {
+    $bundle_instances = \Drupal::service('entity_field.manager')->getFieldDefinitions($entity_type, $bundle);
+    if (isset($bundle_instances[$field_name])) {
+      $instance = $bundle_instances[$field_name];
+      $label = (string) $instance->getLabel();
+      $labels[$label] = isset($labels[$label]) ? ++$labels[$label] : 1;
+    }
+  }
+
+  if (empty($labels)) {
+    return [$field_name];
+  }
+
+  // Sort the field labels by it most used label and return the labels.
+  arsort($labels);
+  return array_keys($labels);
+}
diff --git a/diff.routing.yml b/diff.routing.yml
index eea3670..2d7fb1c 100644
--- a/diff.routing.yml
+++ b/diff.routing.yml
@@ -17,18 +17,10 @@ diff.general_settings:
   requirements:
     _permission: 'administer site configuration'
 
-diff.node_settings:
-  path: '/admin/config/content/diff/entities/node'
-  defaults:
-    _form: '\Drupal\diff\Form\NodeEntitySettingsForm'
-    _title: Diff Entities Settings
-  requirements:
-    _permission: 'administer site configuration'
-
-diff.field_types_list:
+diff.fields_list:
   path: '/admin/config/content/diff/fields'
   defaults:
-    _form: '\Drupal\diff\Form\FieldTypesSettingsForm'
-    _title: Field Type Settings
+    _form: '\Drupal\diff\Form\FieldsSettingsForm'
+    _title: Fields Settings
   requirements:
     _permission: 'administer site configuration'
diff --git a/diff.services.yml b/diff.services.yml
index 55bd570..2c3e1a0 100755
--- a/diff.services.yml
+++ b/diff.services.yml
@@ -14,7 +14,7 @@ services:
 
   diff.entity_parser:
     class: Drupal\diff\DiffEntityParser
-    arguments: ['@plugin.manager.diff.builder', '@entity.manager', '@config.factory']
+    arguments: ['@plugin.manager.diff.builder', '@entity_type.manager', '@config.factory']
 
   diff.breadcrumb:
     class: Drupal\diff\DiffBreadcrumbBuilder
diff --git a/src/Controller/GenericRevisionController.php b/src/Controller/GenericRevisionController.php
index 00f08a9..13ab718 100644
--- a/src/Controller/GenericRevisionController.php
+++ b/src/Controller/GenericRevisionController.php
@@ -101,7 +101,8 @@ class GenericRevisionController extends EntityComparisonBase {
         if ($view_mode == NULL) {
           $view_mode = 'default';
         }
-        $visible = entity_get_display($entity_type_id, $entity->bundle(), $view_mode)->getComponent($field_name);
+        list(, $field_machine_name) = explode('.', $field_name);
+        $visible = entity_get_display($entity_type_id, $entity->bundle(), $view_mode)->getComponent($field_machine_name);
         if ($visible == NULL && !array_key_exists($field_name, $entity_base_fields)) {
           unset($fields[$field_name]);
         }
diff --git a/src/Controller/NodeRevisionController.php b/src/Controller/NodeRevisionController.php
index da4e7ad..c32bcda 100644
--- a/src/Controller/NodeRevisionController.php
+++ b/src/Controller/NodeRevisionController.php
@@ -83,7 +83,8 @@ class NodeRevisionController extends EntityComparisonBase {
         if ($view_mode == NULL) {
           $view_mode = 'default';
         }
-        $visible = entity_get_display('node', $node->getType(), $view_mode)->getComponent($field_name);
+        list(, $field_machine_name) = explode('.', $field_name);
+        $visible = entity_get_display('node', $node->getType(), $view_mode)->getComponent($field_machine_name);
         if ($visible == NULL && !array_key_exists($field_name, $node_base_fields)) {
           unset($fields[$field_name]);
         }
diff --git a/src/DiffBuilderManager.php b/src/DiffBuilderManager.php
index 3f5d0c0..b942ddf 100644
--- a/src/DiffBuilderManager.php
+++ b/src/DiffBuilderManager.php
@@ -9,6 +9,7 @@ namespace Drupal\diff;
 
 use Drupal\Core\Cache\CacheBackendInterface;
 use Drupal\Core\Extension\ModuleHandlerInterface;
+use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\Plugin\DefaultPluginManager;
 
 /**
@@ -36,4 +37,29 @@ class DiffBuilderManager extends DefaultPluginManager {
     $this->alterInfo('field_diff_builder_info');
   }
 
+  /**
+   * Define whether a field should be displayed or not as a diff change.
+   *
+   * Check if the field is not a key and revisionable to define if it should be
+   * displayed in the diff comparison.
+   *
+   * @param \Drupal\Core\Field\FieldStorageDefinitionInterface $field_storage_definition
+   *   The field storage definition.
+   *
+   * @return bool
+   *   TRUE if the field will be displayed.
+   */
+  public function showDiff(FieldStorageDefinitionInterface $field_storage_definition) {
+    $show_diff = FALSE;
+    // Check if the field is revisionable.
+    if ($field_storage_definition->isRevisionable()) {
+      $show_diff = TRUE;
+      // Check if the field is bundle or revision, if so don't dislay it.
+      $entity_type = \Drupal::entityTypeManager()->getDefinition($field_storage_definition->getTargetEntityTypeId());
+      if (in_array($field_storage_definition->getName(), [$entity_type->getKey('bundle'), $entity_type->getKey('revision')])) {
+        $show_diff = FALSE;
+      }
+    }
+    return $show_diff;
+  }
 }
diff --git a/src/DiffEntityParser.php b/src/DiffEntityParser.php
index 0abb47f..3115181 100644
--- a/src/DiffEntityParser.php
+++ b/src/DiffEntityParser.php
@@ -9,7 +9,7 @@ namespace Drupal\diff;
 
 use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\Entity\ContentEntityInterface;
-use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Language\LanguageInterface;
 
 class DiffEntityParser {
@@ -36,20 +36,20 @@ class DiffEntityParser {
    *
    * @var \Drupal\Core\Entity\EntityManagerInterface
    */
-  protected $entityManager;
+  protected $entityTypeManager;
 
   /**
    * Constructs an EntityComparisonBase object.
    *
    * @param DiffBuilderManager $diffBuilderManager
    *   The diff field builder plugin manager.
-   * @param EntityManagerInterface $entityManager
+   * @param EntityTypeManagerInterface $entityTypeManager
    *   Entity Manager service.
    * @param ConfigFactoryInterface $configFactory
    *   The configuration factory.
    */
-  public function __construct(DiffBuilderManager $diffBuilderManager, EntityManagerInterface $entityManager, ConfigFactoryInterface $configFactory) {
-    $this->entityManager = $entityManager;
+  public function __construct(DiffBuilderManager $diffBuilderManager, EntityTypeManagerInterface $entityTypeManager, ConfigFactoryInterface $configFactory) {
+    $this->entityManager = $entityTypeManager;
     $this->config = $configFactory->get('diff.settings');
     $this->pluginsConfig =  $configFactory->get('diff.plugins');
     $this->diffBuilderManager = $diffBuilderManager;
@@ -77,14 +77,50 @@ class DiffEntityParser {
       $entity = $entity->getTranslation($langcode);
     }
     $entity_type_id = $entity->getEntityTypeId();
-    // Load all entity base fields.
-    $entity_base_fields = $this->entityManager->getBaseFieldDefinitions($entity_type_id);
+
+    // Load the diff plugin definitions.
+    $diff_plugin_definitions = $this->diffBuilderManager->getDefinitions();
+    $plugins = [];
+    foreach ($diff_plugin_definitions as $plugin_definition) {
+      if (isset($plugin_definition['field_types'])) {
+        // Iterate through all the field types this plugin supports
+        // and for every such field type add the id of the plugin.
+        foreach ($plugin_definition['field_types'] as $id) {
+          $plugins[$id][] = $plugin_definition['id'];
+        }
+      }
+    }
+
     // Loop through entity fields and transform every FieldItemList object
     // into an array of strings according to field type specific settings.
     foreach ($entity as $field_items) {
-      $field_type = $field_items->getFieldDefinition()->getType();
-      $plugin_config = $this->pluginsConfig->get('field_types.' . $field_type);
+      $field_name = $field_items->getFieldDefinition()->getName();
+
+      // Define if the current field should be displayed as a diff change.
+      $show_diff = $this->diffBuilderManager->showDiff($field_items->getFieldDefinition()->getFieldStorageDefinition());
+      if (!$show_diff) {
+        continue;
+      }
+
+      // Get the plugin configuration set for this field.
+      $plugin_config = $this->pluginsConfig->get('fields.' . $entity_type_id . '.' . $field_name);
+
+      // Load the plugins that can be applied to this field.
+      $plugin_options = [];
+      if (isset($plugins[$field_items->getFieldDefinition()->getType()])) {
+        foreach ($plugins[$field_items->getFieldDefinition()->getType()] as $id) {
+          $plugin_options[$id] = $diff_plugin_definitions[$id]['label'];
+        }
+      }
+
       $plugin = NULL;
+
+      // If there is no a plugin defined take the first available.
+      if (!$plugin_config) {
+        $default_plugin['type'] = array_keys($plugin_options)[0];
+        $plugin = $this->diffBuilderManager->createInstance($default_plugin['type'], []);
+      }
+      // If there is a plugin defined create an instance of it.
       if ($plugin_config && $plugin_config['type'] != 'hidden') {
         $plugin = $this->diffBuilderManager->createInstance($plugin_config['type'], $plugin_config['settings']);
       }
@@ -92,25 +128,9 @@ class DiffEntityParser {
         // Configurable field. It is the responsibility of the class extending
         // this class to hide some configurable fields from comparison. This
         // class compares all configurable fields.
-        if (!array_key_exists($field_items->getName(), $entity_base_fields)) {
-          $build = $plugin->build($field_items);
-          if (!empty($build)) {
-            $result[$field_items->getName()] = $build;
-          }
-        }
-        // If field is one of the entity base fields take visibility settings from
-        // diff admin config page. This means that the visibility of these fields
-        // is controlled per entity type.
-        else {
-          // Check if this field needs to be compared.
-          $config_key = 'entity.' . $entity_type_id . '.' . $field_items->getName();
-          $enabled = $this->config->get($config_key);
-          if ($enabled) {
-            $build = $plugin->build($field_items);
-            if (!empty($build)) {
-              $result[$field_items->getName()] = $build;
-            }
-          }
+        $build = $plugin->build($field_items);
+        if (!empty($build)) {
+          $result[$field_items->getName()] = $build;
         }
       }
     }
diff --git a/src/EntityComparisonBase.php b/src/EntityComparisonBase.php
index 850b810..a29f868 100644
--- a/src/EntityComparisonBase.php
+++ b/src/EntityComparisonBase.php
@@ -118,35 +118,37 @@ class EntityComparisonBase extends ControllerBase {
 
     foreach ($left_values as $field_name => $values) {
       $field_definition = $left_entity->getFieldDefinition($field_name);
+      $left_key = $left_entity->getEntityTypeId() . '.' . $field_definition->getName();
       // Get the compare settings for this field type.
-      $compare_settings = $this->pluginsConfig->get('field_types.' . $field_definition->getType());
-      $result[$field_name] = array(
-        '#name' => ($compare_settings['settings']['show_header'] == 1) ? $field_definition->getLabel() : '',
+      $compare_settings = $this->pluginsConfig->get('fields.' . $left_key);
+      $result[$left_key] = [
+        '#name' => (isset($compare_settings['settings']['show_header']) && $compare_settings['settings']['show_header'] == 0) ? '' : $field_definition->getLabel(),
         '#settings' => $compare_settings,
-      );
+      ];
 
       // Fields which exist on the right entity also.
       if (isset($right_values[$field_name])) {
-        $result[$field_name] += $this->combineFields($left_values[$field_name], $right_values[$field_name]);
+        $result[$left_key] += $this->combineFields($left_values[$field_name], $right_values[$field_name]);
         // Unset the field from the right entity so that we know if the right
         // entity has any fields that left entity doesn't have.
         unset($right_values[$field_name]);
       }
       // This field exists only on the left entity.
       else {
-        $result[$field_name] += $this->combineFields($left_values[$field_name], array());
+        $result[$left_key] += $this->combineFields($left_values[$field_name], []);
       }
     }
 
     // Fields which exist only on the right entity.
     foreach ($right_values as $field_name => $values) {
       $field_definition = $right_entity->getFieldDefinition($field_name);
-      $compare_settings = $this->pluginsConfig->get('field_types.' . $field_definition->getType());
-      $result[$field_name] = array(
-        '#name' => ($compare_settings['settings']['show_header'] == 1) ? $field_definition->getLabel() : '',
+      $right_key = $right_entity->getEntityTypeId() . '.' . $field_definition->getName();
+      $compare_settings = $this->pluginsConfig->get('fields.' . $right_key);
+      $result[$right_key] = [
+        '#name' => (isset($compare_settings['settings']['show_header']) && $compare_settings['settings']['show_header'] == 0) ? '' : $field_definition->getLabel(),
         '#settings' => $compare_settings,
-      );
-      $result[$field_name] += $this->combineFields(array(), $right_values[$field_name]);
+      ];
+      $result[$right_key] += $this->combineFields(array(), $right_values[$field_name]);
     }
 
     // Field rows. Recurse through all child elements.
diff --git a/src/FieldDiffBuilderBase.php b/src/FieldDiffBuilderBase.php
index b57cc74..db44344 100644
--- a/src/FieldDiffBuilderBase.php
+++ b/src/FieldDiffBuilderBase.php
@@ -117,7 +117,7 @@ abstract class FieldDiffBuilderBase extends PluginBase implements FieldDiffBuild
   public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
     $this->configuration['show_header'] = $form_state->getValue('show_header');
     $this->configuration['markdown'] = $form_state->getValue('markdown');
-    $this->configuration['#field_type'] = $form_state->get('field_type');
+    $this->configuration['#fields'] = $form_state->get('fields');
     $this->setConfiguration($this->configuration);
     $this->getConfiguration()->save();
   }
@@ -144,18 +144,18 @@ abstract class FieldDiffBuilderBase extends PluginBase implements FieldDiffBuild
    */
   public function setConfiguration(array $configuration) {
     $config = $this->configFactory->getEditable('diff.plugins');
-    $field_type = $configuration['#field_type'];
-    unset($configuration['#field_type']);
+    $field = $configuration['#fields'];
+    unset($configuration['#fields']);
 
-    $field_type_settings = array();
+    $field_settings = [];
     foreach ($configuration as $key => $value) {
-      $field_type_settings[$key] = $value;
+      $field_settings[$key] = $value;
     }
     $settings = array(
       'type' => $this->pluginId,
-      'settings' => $field_type_settings,
+      'settings' => $field_settings,
     );
-    $config->set('field_types.' . $field_type, $settings);
+    $config->set('fields.' . $field, $settings);
     $config->save();
   }
 
diff --git a/src/Form/FieldTypesSettingsForm.php b/src/Form/FieldsSettingsForm.php
similarity index 60%
rename from src/Form/FieldTypesSettingsForm.php
rename to src/Form/FieldsSettingsForm.php
index 107b7d6..e832c48 100644
--- a/src/Form/FieldTypesSettingsForm.php
+++ b/src/Form/FieldsSettingsForm.php
@@ -1,12 +1,9 @@
 <?php
 
-/**
- * @file
- * Contains \Drupal\diff\Form\FieldTypesSettingsForm.
- */
-
 namespace Drupal\diff\Form;
 
+use Drupal\Core\Entity\EntityFieldManagerInterface;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Drupal\Core\Form\ConfigFormBase;
 use Drupal\Core\Form\FormStateInterface;
@@ -18,7 +15,7 @@ use Drupal\Core\Form\FormState;
  * it provides a select-box having as options all the FieldDiffBuilder plugins
  * that support that field type.
  */
-class FieldTypesSettingsForm extends ConfigFormBase {
+class FieldsSettingsForm extends ConfigFormBase {
 
   /**
    * Wrapper object for writing/reading configuration from diff.plugins.yml
@@ -26,6 +23,20 @@ class FieldTypesSettingsForm extends ConfigFormBase {
   protected $config;
 
   /**
+   * The entity type manager.
+   *
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
+   */
+  protected $entityTypeManager;
+
+  /**
+   * The entity field manager.
+   *
+   * @var \Drupal\Core\Entity\EntityFieldManager
+   */
+  protected $entityFieldManager;
+
+  /**
    * The field type plugin manager service.
    *
    * @var \Drupal\Component\Plugin\PluginManagerInterface
@@ -40,15 +51,19 @@ class FieldTypesSettingsForm extends ConfigFormBase {
   protected $diffBuilderManager;
 
   /**
-   * Constructs a FieldTypesListSettingsForm object.
+   * FieldsSettingsForm constructor.
    *
    * @param \Drupal\Component\Plugin\PluginManagerInterface $plugin_manager
    * @param \Drupal\Component\Plugin\PluginManagerInterface $diffBuilderManager
+   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
+   * @param \Drupal\Core\Entity\EntityFieldManagerInterface $entityFieldManager
    */
-  public function __construct(PluginManagerInterface $plugin_manager, PluginManagerInterface $diffBuilderManager) {
+  public function __construct(PluginManagerInterface $plugin_manager, PluginManagerInterface $diffBuilderManager, EntityTypeManagerInterface $entityTypeManager, EntityFieldManagerInterface $entityFieldManager) {
     $this->config = $this->config('diff.plugins');
     $this->fieldTypePluginManager = $plugin_manager;
     $this->diffBuilderManager = $diffBuilderManager;
+    $this->entityTypeManager = $entityTypeManager;
+    $this->entityFieldManager = $entityFieldManager;
   }
 
   /**
@@ -57,7 +72,9 @@ class FieldTypesSettingsForm extends ConfigFormBase {
   public static function create(ContainerInterface $container) {
     return new static(
       $container->get('plugin.manager.field.field_type'),
-      $container->get('plugin.manager.diff.builder')
+      $container->get('plugin.manager.diff.builder'),
+      $container->get('entity_type.manager'),
+      $container->get('entity_field.manager')
     );
   }
 
@@ -74,6 +91,7 @@ class FieldTypesSettingsForm extends ConfigFormBase {
   protected function getEditableConfigNames() {
     return [
       'diff.plugins',
+      'diff.settings',
     ];
   }
 
@@ -81,6 +99,7 @@ class FieldTypesSettingsForm extends ConfigFormBase {
    * {@inheritdoc}
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
+    $form = parent::buildForm($form, $form_state);
     // The table containing all the field types discovered in the system.
     $form['fields'] = array(
       '#type' => 'table',
@@ -107,11 +126,26 @@ class FieldTypesSettingsForm extends ConfigFormBase {
         }
       }
     }
-    // Get all the field type plugins.
-    $field_definitions = $this->fieldTypePluginManager->getDefinitions();
-    foreach ($field_definitions as $field_type => $field_definition) {
-      // Build a row in the table for every field type.
-      $form['fields'][$field_type] = $this->buildFieldRow($field_type, $field_definition, $plugins, $diff_plugin_definitions, $form_state);
+
+    // Build a row in the table for every field of every entity type.
+    // Get all the field plugins.
+    foreach ($this->entityTypeManager->getDefinitions() as $entity_type_name => $entity_type) {
+      // Exclude non-revisionable entities
+      if (!$entity_type->isRevisionable()) {
+        continue;
+      }
+      $field_definitions = $this->entityFieldManager->getFieldStorageDefinitions($entity_type_name);
+      foreach ($field_definitions as $field_name => $field_definition) {
+
+        $show_diff = $this->diffBuilderManager->showDiff($field_definition);
+        if (!$show_diff) {
+          continue;
+        }
+
+        $key = $entity_type_name . '.' . $field_name;
+        // Build a row in the table for every field type.
+        $form['fields'][$key] = $this->buildFieldRow($entity_type, $field_definition, $plugins, $diff_plugin_definitions, $form_state);
+      }
     }
 
     // Submit button for the form.
@@ -121,40 +155,21 @@ class FieldTypesSettingsForm extends ConfigFormBase {
       '#button_type' => 'primary',
       '#value' => $this->t('Save'),
     );
-
     $form['#attached']['library'][] = 'field_ui/drupal.field_ui';
     $form['#attached']['library'][] = 'diff/diff.general';
 
     return $form;
   }
 
-  /**
-   * Builds a row for the table. Each row corresponds to a field type.
-   *
-   * @param string $field_type
-   *   ID of the field type.
-   * @param array $field_definition
-   *   Definition the field type.
-   * @param array $plugins
-   *   An array of field types and the associated field diff builder plugins ids.
-   * @param array $diff_plugin_definitions
-   *   Definitions of all field diff builder plugins.
-   * @param FormStateInterface $form_state
-   *   THe form state object.
-   *
-   * @return array
-   *   A table row for the field type listing table.
-   */
-  protected function buildFieldRow($field_type, $field_definition, $plugins, $diff_plugin_definitions, FormStateInterface $form_state) {
-    $display_options = $this->config->get('field_types.' . $field_type);
-    $field_type_label = $this->t('@field_label (%field_type)', array(
-        '@field_label' => $field_definition['label'],
-        '%field_type' => $field_type,
-      )
-    );
+  protected function buildFieldRow($entity_type, $field_definition, $plugins, $diff_plugin_definitions, FormStateInterface $form_state) {
+    $entity_type_label = $entity_type->getLabel();
+    $field_name = $field_definition->getName();
+    $field_type = $field_definition->getType();
+    $field_key = $entity_type->id() . '.' . $field_name;
 
-    // Build a list of all the diff plugins supporting this field type.
-    $plugin_options = array();
+    $display_options = $this->config->get('fields.' . $field_key);
+    // Build a list of all diff plugins supporting the field type of the field.
+    $plugin_options = [];
     if (isset($plugins[$field_type])) {
       foreach ($plugins[$field_type] as $id) {
         $plugin_options[$id] = $diff_plugin_definitions[$id]['label'];
@@ -162,31 +177,42 @@ class FieldTypesSettingsForm extends ConfigFormBase {
     }
 
     // Base button element for the various plugin settings actions.
-    $base_button = array(
-      '#submit' => array(array($this, 'multistepSubmit')),
-      '#ajax' => array(
-        'callback' => array($this, 'multistepAjax'),
+    $base_button = [
+      '#submit' => [[$this, 'multiStepSubmit']],
+      '#ajax' => [
+        'callback' => [$this, 'multiStepAjax'],
         'wrapper' => 'field-display-overview-wrapper',
         'effect' => 'fade',
-      ),
-      '#field_type' => $field_type,
-    );
+      ],
+      '#field_key' => $field_key,
+    ];
 
-    $field_row['field_type_label'] = array(
+    $field_row['entity_type'] = [
+      '#markup' => $entity_type_label,
+    ];
+    $labels = _diff_field_label($entity_type->id(), $field_name);
+    $field_row['field_label'] = [
+      '#markup' => array_shift($labels),
+    ];
+
+    $field_type_label = $this->fieldTypePluginManager->getDefinitions()[$field_type]['label'];
+    $field_row['field_type'] = [
       '#markup' => $field_type_label,
-    );
+    ];
 
     // Check the currently selected plugin, and merge persisted values for its
     // settings.
-    if ($type = $form_state->getValue(array('fields', $field_type, 'plugin', 'type'))) {
+    if ($type = $form_state->getValue(['fields', $field_key, 'plugin', 'type'])) {
       $display_options['type'] = $type;
     }
+
     $plugin_settings = $form_state->get('plugin_settings');
-    if (isset($plugin_settings[$field_type]['settings'])) {
+
+    if (isset($plugin_settings[$field_key]['settings'])) {
       $modified = FALSE;
       if (!empty($display_options['settings'])) {
         foreach ($display_options['settings'] as $key => $value) {
-          if ($plugin_settings[$field_type]['settings'][$key] != $value) {
+          if ($plugin_settings[$field_key]['settings'][$key] != $value) {
             $modified = TRUE;
             break;
           }
@@ -195,9 +221,17 @@ class FieldTypesSettingsForm extends ConfigFormBase {
       // In case settings are not identical to the ones in the config display
       // a warning message. Don't display it twice.
       if ($modified && empty($_SESSION['messages']['warning'])) {
-        drupal_set_message($this->t('You have unsaved changes.'), 'warning', FALSE);
+        drupal_set_message($this->t('You have unsaved changes.'), 'warning');
       }
-      $display_options['settings'] = $plugin_settings[$field_type]['settings'];
+      $display_options['settings'] = $plugin_settings[$field_key]['settings'];
+    }
+
+    $default_plugin = NULL;
+    if ($display_options) {
+      $default_plugin = $display_options['type'];
+    }
+    elseif ($plugin_options) {
+      $default_plugin = array_keys($plugin_options)[0];
     }
 
     $field_row['plugin'] = array(
@@ -210,14 +244,14 @@ class FieldTypesSettingsForm extends ConfigFormBase {
         '#attributes' => array(
           'class' => array('field-plugin-type'),
         ),
-        '#default_value' => $display_options ? $display_options['type'] : 'hidden',
+        '#default_value' => $default_plugin,
         '#ajax' => array(
-          'callback' => array($this, 'multistepAjax'),
+          'callback' => array($this, 'multiStepAjax'),
           'method' => 'replace',
           'wrapper' => 'field-display-overview-wrapper',
           'effect' => 'fade',
         ),
-        '#field_type' => $field_type,
+        '#field_key' => $field_key,
       ),
       'settings_edit_form' => array(),
     );
@@ -227,54 +261,54 @@ class FieldTypesSettingsForm extends ConfigFormBase {
 
     // We are currently editing this field's plugin settings. Display the
     // settings form and submit buttons.
-    if ($form_state->get('plugin_settings_edit') == $field_type) {
+    if ($form_state->get('plugin_settings_edit') == $field_key) {
       $field_row['plugin']['settings_edit_form'] = array(
         '#type' => 'container',
         '#attributes' => array('class' => array('field-plugin-settings-edit-form')),
-        '#parents' => array('fields', $field_type, 'settings_edit_form'),
+        '#parents' => ['fields', $field_key, 'settings_edit_form'],
         'label' => array(
           '#markup' => $this->t('Plugin settings:' . ' <span class="plugin-name">' . $plugin_options[$display_options['type']] . '</span>'),
         ),
         'settings' => $plugin->buildConfigurationForm(array(), $form_state),
         'actions' => array(
           '#type' => 'actions',
-          'save_settings' => $base_button + array(
+          'save_settings' => $base_button + [
             '#type' => 'submit',
             '#button_type' => 'primary',
-            '#name' => $field_type . '_plugin_settings_update',
+            '#name' => $field_key . '_plugin_settings_update',
             '#value' => $this->t('Update'),
             '#op' => 'update',
-          ),
-          'cancel_settings' => $base_button + array(
+          ],
+          'cancel_settings' => $base_button + [
             '#type' => 'submit',
-            '#name' => $field_type . '_plugin_settings_cancel',
+            '#name' => $field_key . '_plugin_settings_cancel',
             '#value' => $this->t('Cancel'),
             '#op' => 'cancel',
             // Do not check errors for the 'Cancel' button, but make sure we
             // get the value of the 'plugin type' select.
-            '#limit_validation_errors' => array(array('fields', $field_type, 'plugin', 'type')),
-          ),
+            '#limit_validation_errors' => [['fields', $field_key, 'plugin', 'type']],
+          ],
         ),
       );
       $field_row['settings_edit'] = array();
       $field_row['#attributes']['class'][] = 'field-plugin-settings-editing';
     }
     else {
-      $field_row['settings_edit'] = array();
+      $field_row['settings_edit'] = [];
       // Display the configure settings button only if a plugin is selected.
-      if ($plugin) {
+      if ($default_plugin != 'hidden') {
         $field_row['settings_edit'] = $base_button + array(
-          '#type' => 'image_button',
-          '#name' => $field_type . '_settings_edit',
-          '#src' => 'core/misc/icons/787878/pencil.svg',
-          '#attributes' => array('class' => array('field-plugin-settings-edit'), 'alt' => $this->t('Edit')),
-          '#op' => 'edit',
-          // Do not check errors for the 'Edit' button, but make sure we get
-          // the value of the 'plugin type' select.
-          '#limit_validation_errors' => array(array('fields', $field_type, 'plugin', 'type')),
-          '#prefix' => '<div class="field-plugin-settings-edit-wrapper">',
-          '#suffix' => '</div>',
-        );
+            '#type' => 'image_button',
+            '#name' => $field_key . '_settings_edit',
+            '#src' => 'core/misc/icons/787878/cog.svg',
+            '#attributes' => array('class' => array('field-plugin-settings-edit'), 'alt' => $this->t('Edit')),
+            '#op' => 'edit',
+            // Do not check errors for the 'Edit' button, but make sure we get
+            // the value of the 'plugin type' select.
+            '#limit_validation_errors' => array(array('fields', $field_key, 'plugin', 'type')),
+            '#prefix' => '<div class="field-plugin-settings-edit-wrapper">',
+            '#suffix' => '</div>',
+          );
       }
     }
 
@@ -282,24 +316,25 @@ class FieldTypesSettingsForm extends ConfigFormBase {
   }
 
   /**
-   * Form submission handler for multi-step buttons.
+   * @param $form
+   * @param \Drupal\Core\Form\FormStateInterface $form_state
    */
-  public function multistepSubmit($form, FormStateInterface $form_state) {
+  public function multiStepSubmit($form, FormStateInterface $form_state) {
     $trigger = $form_state->getTriggeringElement();
     $op = $trigger['#op'];
 
     switch ($op) {
       case 'edit':
         // Store the field whose settings are currently being edited.
-        $field_name = $trigger['#field_type'];
-        $form_state->set('plugin_settings_edit', $field_name);
+        $field_key = $trigger['#field_key'];
+        $form_state->set('plugin_settings_edit', $field_key);
         break;
 
       case 'update':
         // Store the saved settings, and set the field back to 'non edit' mode.
-        $field_name = $trigger['#field_type'];
-        if ($plugin_settings = $form_state->getValue(array('fields', $field_name, 'settings_edit_form', 'settings'))) {
-          $form_state->set(['plugin_settings', $field_name, 'settings'], $plugin_settings);
+        $field_key = $trigger['#field_key'];
+        if ($plugin_settings = $form_state->getValue(array('fields', $field_key, 'settings_edit_form', 'settings'))) {
+          $form_state->set(['plugin_settings', $field_key, 'settings'], $plugin_settings);
         }
         $form_state->set('plugin_settings_edit', NULL);
         break;
@@ -313,10 +348,7 @@ class FieldTypesSettingsForm extends ConfigFormBase {
     $form_state->setRebuild();
   }
 
-  /**
-   * Ajax handler for multi-step buttons.
-   */
-  public function multistepAjax(array $form, FormStateInterface $form_state) {
+  public function multiStepAjax(array $form, FormStateInterface $form_state) {
     $trigger = $form_state->getTriggeringElement();
     if (isset($trigger['#op'])) {
       $op = $trigger['#op'];
@@ -324,13 +356,13 @@ class FieldTypesSettingsForm extends ConfigFormBase {
       // Pick the elements that need to receive the ajax-new-content effect.
       switch ($op) {
         case 'edit':
-          $updated_rows = array($trigger['#field_type']);
+          $updated_rows = [$trigger['#field_key']];
           $updated_columns = array('plugin');
           break;
 
         case 'update':
         case 'cancel':
-          $updated_rows = array($trigger['#field_type']);
+          $updated_rows = [$trigger['#field_key']];
           $updated_columns = array('plugin', 'settings_edit');
           break;
       }
@@ -347,43 +379,40 @@ class FieldTypesSettingsForm extends ConfigFormBase {
     return $form['fields'];
   }
 
-  /**
-   * {@inheritdoc}
-   */
   public function validateForm(array &$form, FormStateInterface $form_state) {
     $form_values = $form_state->getValues();
     $plugin_settings = $form_state->get('plugin_settings');
-    $field_types = $form_values['fields'];
+    $fields = $form_values['fields'];
 
-    foreach ($field_types as $field_type => $field_type_values) {
+    foreach ($fields as $field_key => $field_values) {
       // Validate only non-null plugins.
-      if ($field_type_values['plugin']['type'] != 'hidden') {
+      if ($field_values['plugin']['type'] != 'hidden') {
         $settings = array();
         $key = NULL;
         // Form submitted without pressing update button on plugin settings form.
-        if (isset($field_type_values['settings_edit_form']['settings'])) {
-          $settings = $field_type_values['settings_edit_form']['settings'];
+        if (isset($field_values['settings_edit_form']['settings'])) {
+          $settings = $field_values['settings_edit_form']['settings'];
           $key = 1;
         }
         // Form submitted after settings were updated.
-        elseif (isset($plugin_settings[$field_type]['settings'])) {
-          $settings = $plugin_settings[$field_type]['settings'];
+        elseif (isset($plugin_settings[$field_key]['settings'])) {
+          $settings = $plugin_settings[$field_key]['settings'];
           $key = 2;
         }
         if (!empty($settings)) {
           // Build a new Form State object and populate it with values.
           $state = new FormState();
           $state->setValues($settings);
-          $state->set('field_type', $field_type);
-          $plugin = $this->diffBuilderManager->createInstance($field_type_values['plugin']['type'], array());
+          $state->set('fields', $field_key);
+          $plugin = $this->diffBuilderManager->createInstance($field_values['plugin']['type'], array());
           // Send the values to the plugins form validate handler.
           $plugin->validateConfigurationForm($form, $state);
           // Assign the validation messages back to the big table.
           if ($key == 1) {
-            $form_state->setValue(['fields', $field_type, 'settings_edit_form', 'settings'], $state->getValues());
+            $form_state->setValue(['fields', $field_key, 'settings_edit_form', 'settings'], $state->getValues());
           }
           elseif ($key == 2) {
-            $form_state->set(['plugin_settings', $field_type, 'settings'], $state->getValues());
+            $form_state->set(['plugin_settings', $field_key, 'settings'], $state->getValues());
           }
         }
       }
@@ -396,34 +425,30 @@ class FieldTypesSettingsForm extends ConfigFormBase {
   public function submitForm(array &$form, FormStateInterface $form_state) {
     $form_values = $form_state->getValues();
     $plugin_settings = $form_state->get('plugin_settings');
-    $field_types = $form_values['fields'];
-
-    // Remove from configuration the keys of the field types which have no
-    // plugin selected. We need to clear this keys from configuration first
-    // and then save the settings for the fields which have a plugin selected.
-    // If we do both writing and clearing in the same for, the values won't get
-    // saved.
-    foreach ($field_types as $field_type => $field_type_values) {
-      // If there is no plugin selected remove the key from config file.
-      if ($field_type_values['plugin']['type'] == 'hidden') {
-        $this->config->clear('field_types.' . $field_type);
+    $fields = $form_values['fields'];
+
+    // Set the plugin type as hidden of the fields which have no plugin
+    // selected.
+    foreach ($fields as $field_key => $field_values) {
+      if ($field_values['plugin']['type'] == 'hidden') {
+        $this->config->set('fields.' . $field_key, ['type' => 'hidden']);
       }
     }
     $this->config->save();
-    // For field types that have a plugin selected save the settings.
-    foreach ($field_types as $field_type => $field_type_values) {
-      if ($field_type_values['plugin']['type'] != 'hidden') {
+    // For fields that have a plugin selected save the settings.
+    foreach ($fields as $field_key => $field_values) {
+      if ($field_values['plugin']['type'] != 'hidden') {
         // Get plugin settings. They lie either directly in submitted form
         // values (if the whole form was submitted while some plugin settings
         // were being edited), or have been persisted in $form_state.
-        $plugin = $this->diffBuilderManager->createInstance($field_type_values['plugin']['type']);
+        $plugin = $this->diffBuilderManager->createInstance($field_values['plugin']['type']);
         // Form submitted without pressing update button on plugin settings form.
-        if (isset($field_type_values['settings_edit_form']['settings'])) {
-          $settings = $field_type_values['settings_edit_form']['settings'];
+        if (isset($field_values['settings_edit_form']['settings'])) {
+          $settings = $field_values['settings_edit_form']['settings'];
         }
         // Form submitted after settings were updated.
-        elseif (isset($plugin_settings[$field_type]['settings'])) {
-          $settings = $plugin_settings[$field_type]['settings'];
+        elseif (isset($plugin_settings[$field_key]['settings'])) {
+          $settings = $plugin_settings[$field_key]['settings'];
         }
         // If the settings are not set anywhere in the form state just save the
         // default configuration for the current plugin.
@@ -433,7 +458,7 @@ class FieldTypesSettingsForm extends ConfigFormBase {
         // Build a FormState object and call the plugin submit handler.
         $state = new FormState();
         $state->setValues($settings);
-        $state->set('field_type', $field_type);
+        $state->set('fields', $field_key);
 
         $plugin->submitConfigurationForm($form, $state);
       }
@@ -465,6 +490,8 @@ class FieldTypesSettingsForm extends ConfigFormBase {
    */
   protected function getTableHeader() {
     return array(
+      'entity_type' => $this->t('Entity Type'),
+      'field_name' => $this->t('Field'),
       'field_type' => $this->t('Field Type'),
       'plugin' => $this->t('Plugin'),
       'settings_edit' => $this->t(''),
diff --git a/src/Form/NodeEntitySettingsForm.php b/src/Form/NodeEntitySettingsForm.php
deleted file mode 100644
index aafa7eb..0000000
--- a/src/Form/NodeEntitySettingsForm.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\config\Form\NodeEntitySettingsForm.
- */
-
-namespace Drupal\diff\Form;
-
-use Drupal\Core\Form\ConfigFormBase;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Drupal\Core\Entity\EntityManagerInterface;
-use Drupal\Core\Form\FormStateInterface;
-
-/**
- * Defines the settings form for a node entity.
- */
-class NodeEntitySettingsForm extends ConfigFormBase {
-
-  /**
-   * The entity manager.
-   *
-   * @var \Drupal\Core\Entity\EntityManagerInterface
-   */
-  protected $entityManager;
-
-  /**
-   * Constructs a NodeEntitySettingsForm object.
-   *
-   * @param \Drupal\Core\Entity\EntityManagerInterface $entityManager
-   *   The entity manager.
-   */
-  public function __construct(EntityManagerInterface $entityManager) {
-    $this->entityManager = $entityManager;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public static function create(ContainerInterface $container) {
-    return new static(
-      $container->get('entity.manager')
-    );
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getFormId() {
-    return 'diff_entity_node';
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function getEditableConfigNames() {
-    return [
-      'diff.settings',
-    ];
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function buildForm(array $form, FormStateInterface $form_state) {
-    $form = array();
-    $config = $this->config('diff.settings');
-
-    $form['info'] = array(
-      '#markup' => 'Select which of the below base fields of node entities should be compared.',
-    );
-
-    $node_base_fields = $this->entityManager->getBaseFieldDefinitions('node');
-    foreach ($node_base_fields as $field_key => $field) {
-      $form[$field_key] = array(
-        '#title' => $this->t('@field_label (%field_type)', array(
-          '@field_label' => $field->getLabel(),
-          '%field_type' => $field->getType(),
-          )
-        ),
-        '#type' => 'checkbox',
-        '#default_value' => $config->get('entity.node.' . $field_key),
-      );
-    }
-
-    return parent::buildForm($form, $form_state);
-  }
-
-
-  /**
-   * {@inheritdoc}
-   */
-  public function submitForm(array &$form, FormStateInterface $form_state) {
-    $config = $this->config('diff.settings');
-    $values = $form_state->getValues();
-
-    $node_base_fields = $this->entityManager->getBaseFieldDefinitions('node');
-    foreach ($node_base_fields as $field_key => $field) {
-      $config->set('entity.node' . '.' . $field_key, $values[$field_key]);
-      $config->save();
-    }
-
-    return parent::submitForm($form, $form_state);
-  }
-
-}
diff --git a/src/Tests/AdminFormsTest.php b/src/Tests/AdminFormsTest.php
index 8328512..e3e44a7 100644
--- a/src/Tests/AdminFormsTest.php
+++ b/src/Tests/AdminFormsTest.php
@@ -56,32 +56,19 @@ class AdminFormsTest extends WebTestBase {
    */
   public function testConfigurableFieldsTab() {
     $this->drupalGet('admin/config/content/diff/fields');
-    $this->drupalPostAjaxForm(NULL, [], 'text_settings_edit');
-    $this->assertText('Plugin settings: Text Field Diff');
+    $this->drupalPostAjaxForm(NULL, [], 'node.body_settings_edit');
+    $this->assertText('Plugin settings: Text');
     $edit = [
-      'fields[text][settings_edit_form][settings][show_header]' => TRUE,
-      'fields[text][settings_edit_form][settings][compare_format]' => TRUE,
-      'fields[text][settings_edit_form][settings][markdown]' => 'filter_xss_all',
+      'fields[node.body][settings_edit_form][settings][show_header]' => TRUE,
+      'fields[node.body][settings_edit_form][settings][compare_format]' => TRUE,
+      'fields[node.body][settings_edit_form][settings][markdown]' => 'filter_xss_all',
     ];
     $this->drupalPostForm(NULL, $edit, t('Update'));
-    $this->assertText('You have unsaved changes.');
     $this->drupalPostForm(NULL, [], t('Save'));
     $this->assertText('Your settings have been saved.');
   }
 
   /**
-   * Tests the Base fields tab.
-   */
-  public function testBaseFieldsTab() {
-    $edit = [
-      'nid' => TRUE,
-      'status' => TRUE,
-    ];
-    $this->drupalPostForm('admin/config/content/diff/entities/node', $edit, t('Save configuration'));
-    $this->assertText('The configuration options have been saved.');
-  }
-
-  /**
    * Tests the Compare Revisions vertical tab.
    */
   public function testCompareRevisionsTab() {
diff --git a/src/Tests/DiffPluginTest.php b/src/Tests/DiffPluginTest.php
index 7977cc3..e5fe384 100644
--- a/src/Tests/DiffPluginTest.php
+++ b/src/Tests/DiffPluginTest.php
@@ -369,9 +369,9 @@ class DiffPluginTest extends WebTestBase {
 
     // Enable the comparison of the link's title field.
     $config = \Drupal::configFactory()->getEditable('diff.plugins');
-    $settings = $config->get('field_types.link.settings');
     $settings['compare_title'] = TRUE;
-    $config->set('field_types.link.settings', $settings);
+    $config->set('fields.node.field_link.type', 'link_field_diff_builder');
+    $config->set('fields.node.field_link.settings', $settings);
     $config->save();
 
     // Create an article, setting values on the link field.
@@ -539,9 +539,9 @@ class DiffPluginTest extends WebTestBase {
   public function testTextWithSummaryPlugin() {
     // Enable the comparison of the summary.
     $config = \Drupal::configFactory()->getEditable('diff.plugins');
-    $settings = $config->get('field_types.text_with_summary.settings');
     $settings['compare_summary'] = TRUE;
-    $config->set('field_types.text_with_summary.settings', $settings);
+    $config->set('fields.node.body.type', 'text_summary_field_diff_builder');
+    $config->set('fields.node.body.settings', $settings);
     $config->save();
 
     // Create an article, setting the body field.
