diff --git a/bcvb.module b/bcvb.module
index 4e3acf7..cf9d842 100644
--- a/bcvb.module
+++ b/bcvb.module
@@ -1,25 +1,24 @@
 <?php
 
+/**
+ * @file
+ */
+
 declare(strict_types=1);
 
 /**
  * @file
  * Hook implementations for BCVB module.
  */
-
-use Drupal\bcvb\Handler\BcvbViewBuilder;
-use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Hook\Attribute\LegacyHook;
+use Drupal\bcvb\Hook\BcvbHooks;
 
 /**
  * Implements hook_entity_type_alter().
  *
  * @todo Convert to OOP hook once minimum supported version is 11.1.
  */
+#[LegacyHook]
 function bcvb_entity_type_alter(array &$entity_types): void {
-  $configuredEntityTypes = \array_filter(\Drupal::config('bcvb.settings')->get('entity_types') ?? []);
-  foreach ($configuredEntityTypes as $entityType) {
-    if ($entity_types[$entityType] instanceof EntityTypeInterface) {
-      $entity_types[$entityType]->setViewBuilderClass(BcvbViewBuilder::class);
-    }
-  }
+  \Drupal::service(BcvbHooks::class)->entityTypeAlter($entity_types);
 }
diff --git a/bcvb.services.yml b/bcvb.services.yml
index da9c47d..9471307 100644
--- a/bcvb.services.yml
+++ b/bcvb.services.yml
@@ -4,3 +4,7 @@ services:
     autowire: true
 
   Drupal\bcvb\EventSubscriber\BcvbConfigSubscriber: ~
+
+  Drupal\bcvb\Hook\BcvbHooks:
+    class: Drupal\bcvb\Hook\BcvbHooks
+    autowire: true
diff --git a/src/Hook/BcvbHooks.php b/src/Hook/BcvbHooks.php
new file mode 100644
index 0000000..29eaa89
--- /dev/null
+++ b/src/Hook/BcvbHooks.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace Drupal\bcvb\Hook;
+
+use Drupal\bcvb\Handler\BcvbViewBuilder;
+use Drupal\Core\Entity\EntityTypeInterface;
+use Drupal\Core\Hook\Attribute\Hook;
+
+/**
+ * Hook implementations for bcvb.
+ */
+class BcvbHooks {
+
+  /**
+   * Implements hook_entity_type_alter().
+   *
+   * @todo Convert to OOP hook once minimum supported version is 11.1.
+   */
+  #[Hook('entity_type_alter')]
+  public function entityTypeAlter(array &$entity_types): void {
+    $configuredEntityTypes = array_filter(\Drupal::config('bcvb.settings')->get('entity_types') ?? []);
+    foreach ($configuredEntityTypes as $entityType) {
+      if ($entity_types[$entityType] instanceof EntityTypeInterface) {
+        $entity_types[$entityType]->setViewBuilderClass(BcvbViewBuilder::class);
+      }
+    }
+  }
+
+}
diff --git a/tests/src/Functional/BcvbPintoTest.php b/tests/src/Functional/BcvbPintoTest.php
index e42f8c5..42e72f5 100644
--- a/tests/src/Functional/BcvbPintoTest.php
+++ b/tests/src/Functional/BcvbPintoTest.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
 
 namespace Drupal\Tests\bcvb\Functional;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\bcvb\Handler\BcvbViewBuilder;
 use Drupal\bcvb_example\Entity\BlockContent\Accordion;
 use Drupal\Tests\BrowserTestBase;
@@ -14,6 +16,8 @@ use Symfony\Component\DomCrawler\Crawler;
  *
  * @group bcvb
  */
+#[Group('bcvb')]
+#[RunTestsInSeparateProcesses]
 final class BcvbPintoTest extends BrowserTestBase {
 
   /**
