diff --git a/bulk_update_fields.module b/bulk_update_fields.module
index 6f40a86..0993f8d 100644
--- a/bulk_update_fields.module
+++ b/bulk_update_fields.module
@@ -5,24 +5,9 @@
  * Contains bulk_update_fields.module.
  */
 
-use Drupal\Core\Database\Database;
-use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\system\Entity\Action;
 
-/**
- * Implements hook_entity_operation_alter().
- */
-function bulk_update_fields_entity_operation_alter(array &$operations, EntityInterface $entity) {
-  $bulk_update_fields_config = 'system.action.bulk_update_fields_on_';
-  $config_names = \Drupal::configFactory()->listAll($bulk_update_fields_config);
-  foreach (\Drupal::entityTypeManager()->getDefinitions() as $entity_type_machine_name => $entity_type) {
-    if (!in_array($bulk_update_fields_config . $entity_type_machine_name, $config_names)) {
-      _bulk_update_fields_create_action($entity_type_machine_name, $entity_type->getLabel());
-    }
-  }
-}
-
 /**
  * Create Action.
  */
diff --git a/bulk_update_fields.services.yml b/bulk_update_fields.services.yml
new file mode 100644
index 0000000..ef28c7e
--- /dev/null
+++ b/bulk_update_fields.services.yml
@@ -0,0 +1,6 @@
+services:
+  bulk_update_fields.entity_type_create_listener:
+    class: Drupal\bulk_update_fields\EventSubscriber\EntityTypeCreateSubscriber
+    arguments: [ '@config.installer' ]
+    tags:
+      - { name: 'event_subscriber' }
diff --git a/src/EventSubscriber/EntityTypeCreateSubscriber.php b/src/EventSubscriber/EntityTypeCreateSubscriber.php
new file mode 100644
index 0000000..7784616
--- /dev/null
+++ b/src/EventSubscriber/EntityTypeCreateSubscriber.php
@@ -0,0 +1,49 @@
+<?php
+
+namespace Drupal\bulk_update_fields\EventSubscriber;
+
+use Drupal\Core\Config\ConfigInstallerInterface;
+use Drupal\Core\Entity\EntityTypeEventSubscriberTrait;
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Entity\EntityTypeListenerInterface;
+use Symfony\Component\EventDispatcher\EventSubscriberInterface;
+
+/**
+ * Defines a class for listening to entity type creation.
+ */
+class EntityTypeCreateSubscriber implements EntityTypeListenerInterface, EventSubscriberInterface {
+
+  use EntityTypeEventSubscriberTrait;
+
+  /**
+   * @var \Drupal\Core\Config\ConfigInstallerInterface
+   */
+  protected $configInstaller;
+
+  /**
+   * Constructs a new EntityCreateSubscriber.
+   *
+   * @param \Drupal\Core\Config\ConfigInstallerInterface $config_installer
+   *   (optional) The config installer.
+   */
+  public function __construct(ConfigInstallerInterface $config_installer) {
+    $this->configInstaller = $config_installer;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getSubscribedEvents() {
+    return static::getEntityTypeEvents();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function onEntityTypeCreate(EntityTypeInterface $entity_type) {
+    if (!$this->configInstaller->isSyncing()) {
+      _bulk_update_fields_create_action($entity_type->id(), $entity_type->getLabel());
+    }
+  }
+
+}
