diff --git a/core/modules/content_moderation/content_moderation.module b/core/modules/content_moderation/content_moderation.module
index 932048d..7345e93 100644
--- a/core/modules/content_moderation/content_moderation.module
+++ b/core/modules/content_moderation/content_moderation.module
@@ -227,7 +227,7 @@ function content_moderation_entity_bundle_info_alter(&$bundles) {
     foreach ($plugin->getEntityTypes() as $entity_type_id) {
       foreach ($plugin->getBundlesForEntityType($entity_type_id) as $bundle_id) {
         if (isset($bundles[$entity_type_id][$bundle_id])) {
-          $bundles[$entity_type_id][$bundle_id]['workflows'][] = $workflow->id();
+          $bundles[$entity_type_id][$bundle_id]['workflow'] = $workflow->id();
         }
       }
     }
diff --git a/core/modules/content_moderation/src/EntityOperations.php b/core/modules/content_moderation/src/EntityOperations.php
index 36e2d9d..af87f6f 100644
--- a/core/modules/content_moderation/src/EntityOperations.php
+++ b/core/modules/content_moderation/src/EntityOperations.php
@@ -100,11 +100,10 @@ public function entityPresave(EntityInterface $entity) {
       return;
     }
 
-    if ($entity->moderation_state->getValue()) {
-      $workflows = $this->moderationInfo->getWorkFlowsForEntity($entity);
-      $workflow = reset($workflows);
+    if ($entity->moderation_state->value) {
+      $workflow = $this->moderationInfo->getWorkflowForEntity($entity);
       /** @var \Drupal\content_moderation\ContentModerationState $current_state */
-      $current_state = $workflow->getState($entity->moderation_state->getValue()[0][$workflow->id()]);
+      $current_state = $workflow->getState($entity->moderation_state->value);
 
       // This entity is default if it is new, the default revision, or the
       // default revision is not published.
@@ -154,12 +153,11 @@ public function entityUpdate(EntityInterface $entity) {
    *   The entity to update or create a moderation state for.
    */
   protected function updateOrCreateFromEntity(EntityInterface $entity) {
-    $moderation_states = $entity->moderation_state->getValue()[0];
-    $workflows = $this->moderationInfo->getWorkFlowsForEntity($entity);
-    $workflow = reset($workflows);
+    $moderation_state = $entity->moderation_state->value;
+    $workflow = $this->moderationInfo->getWorkflowForEntity($entity);
     /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
-    if (!$moderation_states) {
-      $moderation_states[$workflow->id] = $workflow->getInitialState()->id();
+    if (!$moderation_state) {
+      $moderation_state = $workflow->getInitialState()->id();
     }
 
     // @todo what if $entity->moderation_state is null at this point?
@@ -201,11 +199,8 @@ protected function updateOrCreateFromEntity(EntityInterface $entity) {
 
     // Create the ContentModerationState entity for the inserted entity.
     $content_moderation_state->set('content_entity_revision_id', $entity_revision_id);
-    foreach ($moderation_states as $workflow_id => $moderation_state) {
-      $content_moderation_state->workflow->target_id = $workflow_id;
-      $content_moderation_state->set('moderation_state', $moderation_state);
-      ContentModerationStateEntity::updateOrCreateFromEntity($content_moderation_state);
-    }
+    $content_moderation_state->set('moderation_state', $moderation_state);
+    ContentModerationStateEntity::updateOrCreateFromEntity($content_moderation_state);
   }
 
   /**
diff --git a/core/modules/content_moderation/src/EntityTypeInfo.php b/core/modules/content_moderation/src/EntityTypeInfo.php
index 3e8826b..f11e471 100644
--- a/core/modules/content_moderation/src/EntityTypeInfo.php
+++ b/core/modules/content_moderation/src/EntityTypeInfo.php
@@ -308,7 +308,7 @@ public function entityBaseFieldInfo(EntityTypeInterface $entity_type) {
     }
 
     $fields = [];
-    $fields['moderation_state'] = BaseFieldDefinition::create('map')
+    $fields['moderation_state'] = BaseFieldDefinition::create('string')
       ->setLabel(t('Moderation state'))
       ->setDescription(t('The moderation state of this piece of content.'))
       ->setComputed(TRUE)
diff --git a/core/modules/content_moderation/src/ModerationInformation.php b/core/modules/content_moderation/src/ModerationInformation.php
index bbf0853..c20be52 100644
--- a/core/modules/content_moderation/src/ModerationInformation.php
+++ b/core/modules/content_moderation/src/ModerationInformation.php
@@ -64,7 +64,7 @@ public function canModerateEntitiesOfEntityType(EntityTypeInterface $entity_type
   public function shouldModerateEntitiesOfBundle(EntityTypeInterface $entity_type, $bundle) {
     if ($this->canModerateEntitiesOfEntityType($entity_type)) {
       $bundles = $this->bundleInfo->getBundleInfo($entity_type->id());
-      return isset($bundles[$bundle]['workflows']);
+      return isset($bundles[$bundle]['workflow']);
     }
     return FALSE;
   }
@@ -140,15 +140,10 @@ public function isLiveRevision(ContentEntityInterface $entity) {
   /**
    * {@inheritdoc}
    */
-  public function getWorkFlowsForEntity(ContentEntityInterface $entity) {
+  public function getWorkflowForEntity(ContentEntityInterface $entity) {
     $bundles = $this->bundleInfo->getBundleInfo($entity->getEntityTypeId());
-    if (isset($bundles[$entity->bundle()]['workflows'])) {
-      $workflows = [];
-      foreach ($bundles[$entity->bundle()]['workflows'] as $workflow_id) {
-        $workflows[] = $this->entityTypeManager->getStorage('workflow')
-          ->load($workflow_id);
-      }
-      return $workflows;
+    if (isset($bundles[$entity->bundle()]['workflow'])) {
+      return $this->entityTypeManager->getStorage('workflow')->load($bundles[$entity->bundle()]['workflow']);
     };
     return NULL;
   }
diff --git a/core/modules/content_moderation/src/ModerationInformationInterface.php b/core/modules/content_moderation/src/ModerationInformationInterface.php
index 7443250..862987f 100644
--- a/core/modules/content_moderation/src/ModerationInformationInterface.php
+++ b/core/modules/content_moderation/src/ModerationInformationInterface.php
@@ -127,14 +127,14 @@ public function hasForwardRevision(ContentEntityInterface $entity);
   public function isLiveRevision(ContentEntityInterface $entity);
 
   /**
-   * Gets the workflows for the given content entity.
+   * Gets the workflow for the given content entity.
    *
    * @param \Drupal\Core\Entity\ContentEntityInterface $entity
-   *   The content entity to get the workflows for.
+   *   The content entity to get the workflow for.
    *
-   * @return \Drupal\workflows\WorkflowInterface[]|null
-   *   The workflow entities. NULL if there are no workflows.
+   * @return \Drupal\workflows\WorkflowInterface|null
+   *   The workflow entity. NULL if there is no workflow.
    */
-  public function getWorkFlowsForEntity(ContentEntityInterface $entity);
+  public function getWorkflowForEntity(ContentEntityInterface $entity);
 
 }
diff --git a/core/modules/content_moderation/src/Plugin/Field/ModerationStateFieldItemList.php b/core/modules/content_moderation/src/Plugin/Field/ModerationStateFieldItemList.php
index 133b51e..0444644 100644
--- a/core/modules/content_moderation/src/Plugin/Field/ModerationStateFieldItemList.php
+++ b/core/modules/content_moderation/src/Plugin/Field/ModerationStateFieldItemList.php
@@ -12,15 +12,6 @@
  * moderation state content entity.
  */
 class ModerationStateFieldItemList extends FieldItemList {
-  /**
-   * @inheritDoc
-   */
-  public function __get($property_name) {
-    if ($item = $this->first()) {
-      $property = $item->__get($property_name);
-      return !empty($property) ? $property : $item->getValue();
-    }
-  }
 
   /**
    * Gets the moderation state ID linked to a content entity revision.
@@ -46,8 +37,8 @@ protected function getModerationStateId() {
     // It is possible that the bundle does not exist at this point. For example,
     // the node type form creates a fake Node entity to get default values.
     // @see \Drupal\node\NodeTypeForm::form()
-    $workflows = $moderation_info->getWorkFlowsForEntity($entity);
-    return !empty($workflows) ? reset($workflows)->getInitialState()->id() : NULL;
+    $workflow = $moderation_info->getWorkflowForEntity($entity);
+    return $workflow ? $workflow->getInitialState()->id() : NULL;
   }
 
   /**
@@ -95,6 +86,9 @@ protected function loadContentModerationStateRevision(ContentEntityInterface $en
    * {@inheritdoc}
    */
   public function get($index) {
+    if ($index !== 0) {
+      throw new \InvalidArgumentException('An entity can not have multiple moderation states at the same time.');
+    }
     $this->computeModerationFieldItemList();
     return isset($this->list[$index]) ? $this->list[$index] : NULL;
   }
@@ -118,7 +112,7 @@ protected function computeModerationFieldItemList() {
       $moderation_state = $this->getModerationStateId();
       // Do not store NULL values in the static cache.
       if ($moderation_state) {
-        $this->list[$index] = $this->createItem($index, ['editorial' => $moderation_state]);
+        $this->list[$index] = $this->createItem($index, $moderation_state);
       }
     }
   }
diff --git a/core/modules/content_moderation/tests/src/Kernel/MultipleWorkflowsPerBundle.php b/core/modules/content_moderation/tests/src/Kernel/MultipleWorkflowsPerBundle.php
deleted file mode 100644
index 61dfcb2..0000000
--- a/core/modules/content_moderation/tests/src/Kernel/MultipleWorkflowsPerBundle.php
+++ /dev/null
@@ -1,115 +0,0 @@
-<?php
-
-namespace Drupal\Tests\content_moderation\Kernel;
-
-use Drupal\content_moderation\Entity\ContentModerationState;
-use Drupal\content_moderation\Plugin\Field\ModerationStateFieldItemList;
-use Drupal\Core\Entity\EntityPublishedInterface;
-use Drupal\entity_test\Entity\EntityTestBundle;
-use Drupal\entity_test\Entity\EntityTestWithBundle;
-use Drupal\Core\Entity\EntityInterface;
-use Drupal\KernelTests\KernelTestBase;
-use Drupal\language\Entity\ConfigurableLanguage;
-use Drupal\node\Entity\Node;
-use Drupal\node\Entity\NodeType;
-use Drupal\workflows\Entity\Workflow;
-
-/**
- * Tests links between a content entity and a content_moderation_state entity.
- *
- * @group content_moderation
- */
-class MultipleWorkflowsPerBundle extends KernelTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = [
-    'node',
-    'content_moderation',
-    'user',
-    'system',
-    'content_translation',
-    'text',
-    'language',
-    'workflows',
-    'options',
-  ];
-
-  /**
-   * @var \Drupal\Core\Entity\EntityTypeManager
-   */
-  protected $entityTypeManager;
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $this->installSchema('node', 'node_access');
-    $this->installEntitySchema('node');
-    $this->installEntitySchema('user');
-    $this->installEntitySchema('content_moderation_state');
-    $this->installConfig('content_moderation');
-
-    $this->entityTypeManager = $this->container->get('entity_type.manager');
-  }
-
-  /**
-   * Tests basic monolingual content moderation through the API.
-   */
-  public function testBasicModeration() {
-    $entity_storage = $this->entityTypeManager->getStorage('node');
-    $bundle_entity_type_id = $this->entityTypeManager->getDefinition('node')
-      ->getBundleEntityType();
-    $bundle_entity_type_definition = $this->entityTypeManager->getDefinition($bundle_entity_type_id);
-    $entity_type_storage = $this->entityTypeManager->getStorage($bundle_entity_type_id);
-
-    $entity_type = $entity_type_storage->create([
-      $bundle_entity_type_definition->getKey('id') => 'example',
-    ]);
-    $entity_type->save();
-    $bundle_id = $entity_type->id();
-
-    $workflow = Workflow::load('editorial');
-    $workflow->getTypePlugin()
-      ->addEntityTypeAndBundle('node', $bundle_id);
-    $workflow->save();
-
-    $workflow2 = Workflow::create([
-      'id' => 'morning',
-      'label' => 'Morning',
-      'type' => 'content_moderation',
-      'transitions' => [
-        'drink_coffee' => [
-          'label' => 'Drink Coffee',
-          'from' => ['tired'],
-          'to' => 'awake',
-          'weight' => 0,
-        ],
-      ],
-      'states' => [
-        'tired' => [
-          'label' => 'Tired',
-          'weight' => 0,
-        ],
-        'awake' => [
-          'label' => 'Awake',
-          'weight' => 1,
-        ],
-      ],
-    ]);
-    $workflow2->getTypePlugin()
-      ->addEntityTypeAndBundle('node', $bundle_id);
-    $workflow2->save();
-
-    $entity = $entity_storage->create([
-      'title' => 'Test title',
-      $this->entityTypeManager->getDefinition('node')
-        ->getKey('bundle') => $bundle_id,
-    ]);
-    $entity->save();
-
-  }
-}
\ No newline at end of file
