diff --git a/feedback.module b/feedback.module
index d402ce1..1e2f678 100644
--- a/feedback.module
+++ b/feedback.module
@@ -5,37 +5,22 @@
  * Contains feedback.module..
  */
 
+use Drupal\Core\Hook\Attribute\LegacyHook;
+use Drupal\feedback\Hook\FeedbackHooks;
 use Drupal\Core\Routing\RouteMatchInterface;
 
 /**
  * Implements hook_help().
  */
+#[LegacyHook]
 function feedback_help($route_name, RouteMatchInterface $route_match) {
-  switch ($route_name) {
-    // Main module help for the feedback module.
-    case 'help.page.feedback':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      return $output;
-
-    default:
-  }
+  return \Drupal::service(FeedbackHooks::class)->help($route_name, $route_match);
 }
 
 /**
  * Implements hook_theme().
  */
+#[LegacyHook]
 function feedback_theme() {
-  $theme = [];
-  $theme['feedback_message'] = [
-    'render element' => 'elements',
-    'file' => 'feedback_message.page.inc',
-    'template' => 'feedback_message',
-  ];
-  $theme['feedback_message_content_add_list'] = [
-    'render element' => 'content',
-    'variables' => ['content' => NULL],
-    'file' => 'feedback_message.page.inc',
-  ];
-  return $theme;
+  return \Drupal::service(FeedbackHooks::class)->theme();
 }
diff --git a/feedback.services.yml b/feedback.services.yml
index 4af3fb7..23b56a0 100644
--- a/feedback.services.yml
+++ b/feedback.services.yml
@@ -8,3 +8,7 @@ services:
       - '@current_user'
       - '@module_handler'
       - '@renderer'
+
+  Drupal\feedback\Hook\FeedbackHooks:
+    class: Drupal\feedback\Hook\FeedbackHooks
+    autowire: true
diff --git a/src/Hook/FeedbackHooks.php b/src/Hook/FeedbackHooks.php
new file mode 100644
index 0000000..68eac90
--- /dev/null
+++ b/src/Hook/FeedbackHooks.php
@@ -0,0 +1,52 @@
+<?php
+
+namespace Drupal\feedback\Hook;
+
+use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\Core\Hook\Attribute\Hook;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
+
+/**
+ * Hook implementations for feedback.
+ */
+class FeedbackHooks {
+  use StringTranslationTrait;
+
+  /**
+   * Implements hook_help().
+   */
+  #[Hook('help')]
+  public function help($route_name, RouteMatchInterface $route_match) {
+    switch ($route_name) {
+      // Main module help for the feedback module.
+      case 'help.page.feedback':
+        $output = '';
+        $output .= '<h3>' . $this->t('About') . '</h3>';
+        return $output;
+
+      default:
+    }
+  }
+
+  /**
+   * Implements hook_theme().
+   */
+  #[Hook('theme')]
+  public function theme() {
+    $theme = [];
+    $theme['feedback_message'] = [
+      'render element' => 'elements',
+      'file' => 'feedback_message.page.inc',
+      'template' => 'feedback_message',
+    ];
+    $theme['feedback_message_content_add_list'] = [
+      'render element' => 'content',
+      'variables' => [
+        'content' => NULL,
+      ],
+      'file' => 'feedback_message.page.inc',
+    ];
+    return $theme;
+  }
+
+}
diff --git a/tests/src/Functional/BasicFunctionalityTest.php b/tests/src/Functional/BasicFunctionalityTest.php
index 95460ec..fab00bd 100644
--- a/tests/src/Functional/BasicFunctionalityTest.php
+++ b/tests/src/Functional/BasicFunctionalityTest.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
 
 namespace Drupal\Tests\feedback\Functional;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\Tests\BrowserTestBase;
 use Drupal\Tests\block\Traits\BlockCreationTrait;
 use Drupal\feedback\Entity\FeedbackMessage;
@@ -13,6 +15,8 @@ use Drupal\feedback\Entity\FeedbackMessage;
  *
  * @group feedback
  */
+#[Group('feedback')]
+#[RunTestsInSeparateProcesses]
 class BasicFunctionalityTest extends BrowserTestBase {
   use BlockCreationTrait;
 
diff --git a/tests/src/Functional/BlockTest.php b/tests/src/Functional/BlockTest.php
index 06a5204..5863aed 100644
--- a/tests/src/Functional/BlockTest.php
+++ b/tests/src/Functional/BlockTest.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
 
 namespace Drupal\Tests\feedback\Functional;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\feedback\Entity\FeedbackMessageType;
 use Drupal\Tests\BrowserTestBase;
 
@@ -12,6 +14,8 @@ use Drupal\Tests\BrowserTestBase;
  *
  * @group feedback
  */
+#[Group('feedback')]
+#[RunTestsInSeparateProcesses]
 class BlockTest extends BrowserTestBase {
 
   /**
diff --git a/tests/src/Functional/CreateReadUpdateDeleteMessageTest.php b/tests/src/Functional/CreateReadUpdateDeleteMessageTest.php
index 1fccf98..073a8d3 100644
--- a/tests/src/Functional/CreateReadUpdateDeleteMessageTest.php
+++ b/tests/src/Functional/CreateReadUpdateDeleteMessageTest.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
 
 namespace Drupal\Tests\feedback\Functional;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Url;
 use Drupal\Tests\BrowserTestBase;
@@ -15,6 +17,8 @@ use Drupal\user\UserInterface;
  *
  * @group feedback
  */
+#[Group('feedback')]
+#[RunTestsInSeparateProcesses]
 class CreateReadUpdateDeleteMessageTest extends BrowserTestBase {
 
   /**
diff --git a/tests/src/Functional/CreateReadUpdateDeleteMessageTypeTest.php b/tests/src/Functional/CreateReadUpdateDeleteMessageTypeTest.php
index 79d278b..da72efc 100644
--- a/tests/src/Functional/CreateReadUpdateDeleteMessageTypeTest.php
+++ b/tests/src/Functional/CreateReadUpdateDeleteMessageTypeTest.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
 
 namespace Drupal\Tests\feedback\Functional;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Url;
 use Drupal\Tests\BrowserTestBase;
@@ -15,6 +17,8 @@ use Drupal\feedback\Entity\FeedbackMessageType;
  *
  * @group feedback
  */
+#[Group('feedback')]
+#[RunTestsInSeparateProcesses]
 class CreateReadUpdateDeleteMessageTypeTest extends BrowserTestBase {
   use BlockCreationTrait;
 
diff --git a/tests/src/Functional/Update/FeedbackUpdateHookTest.php b/tests/src/Functional/Update/FeedbackUpdateHookTest.php
index f394f1f..e20f179 100644
--- a/tests/src/Functional/Update/FeedbackUpdateHookTest.php
+++ b/tests/src/Functional/Update/FeedbackUpdateHookTest.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
 
 namespace Drupal\Tests\feedback\Functional\Update;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\FunctionalTests\Update\UpdatePathTestBase;
 
 /**
@@ -12,6 +14,9 @@ use Drupal\FunctionalTests\Update\UpdatePathTestBase;
  * @group Update
  * @group feedback
  */
+#[Group('Update')]
+#[Group('feedback')]
+#[RunTestsInSeparateProcesses]
 class FeedbackUpdateHookTest extends UpdatePathTestBase {
 
   /**
diff --git a/tests/src/Functional/ViewsTest.php b/tests/src/Functional/ViewsTest.php
index 5507c7f..2322c4b 100644
--- a/tests/src/Functional/ViewsTest.php
+++ b/tests/src/Functional/ViewsTest.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
 
 namespace Drupal\Tests\feedback\Functional;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Behat\Mink\Element\ElementInterface;
 use Behat\Mink\Element\NodeElement;
 use Drupal\feedback\Entity\FeedbackMessage;
@@ -14,6 +16,8 @@ use Drupal\Tests\BrowserTestBase;
  *
  * @group feedback
  */
+#[Group('feedback')]
+#[RunTestsInSeparateProcesses]
 class ViewsTest extends BrowserTestBase {
 
   /**
