diff --git a/http_status_code.module b/http_status_code.module
index 2a1af8d..dce39df 100644
--- a/http_status_code.module
+++ b/http_status_code.module
@@ -4,25 +4,15 @@
  * @file
  * Contains http_status_code.module.
  */
-
+use Drupal\Core\Hook\Attribute\LegacyHook;
+use Drupal\http_status_code\Hook\HttpStatusCodeHooks;
 use Drupal\Core\Routing\RouteMatchInterface;
 
 /**
  * Implements hook_help().
  */
-function http_status_code_help($route_name, RouteMatchInterface $route_match) {
-  $output = '';
-  switch ($route_name) {
-
-    case 'help.page.http_status_code':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('HTTP Status Code returns a HTTP Status Code for a defined path') . '</p>';
-      $output .= '<p>' . t('Use with care, fiddling with HTTP Headers could make both browsers and Google confused.') . '</p>';
-      $output .= '<p>' . t('Manually adding a 410 Gone to a path makes Google remove it from their search index.') . '</p>';
-      return $output;
-
-    default:
-      return $output;
-  }
+#[LegacyHook]
+function http_status_code_help($route_name, RouteMatchInterface $route_match)
+{
+    return \Drupal::service(HttpStatusCodeHooks::class)->help($route_name, $route_match);
 }
diff --git a/http_status_code.services.yml b/http_status_code.services.yml
index 6c33c08..8c705f3 100644
--- a/http_status_code.services.yml
+++ b/http_status_code.services.yml
@@ -4,3 +4,7 @@ services:
     arguments: [ "@entity_type.manager" ]
     tags:
       - { name: 'event_subscriber' }
+
+  Drupal\http_status_code\Hook\HttpStatusCodeHooks:
+    class: Drupal\http_status_code\Hook\HttpStatusCodeHooks
+    autowire: true
diff --git a/src/Hook/HttpStatusCodeHooks.php b/src/Hook/HttpStatusCodeHooks.php
new file mode 100644
index 0000000..151b304
--- /dev/null
+++ b/src/Hook/HttpStatusCodeHooks.php
@@ -0,0 +1,33 @@
+<?php
+
+namespace Drupal\http_status_code\Hook;
+
+use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\Core\Hook\Attribute\Hook;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
+/**
+ * Hook implementations for http_status_code.
+ */
+class HttpStatusCodeHooks
+{
+    use StringTranslationTrait;
+    /**
+     * Implements hook_help().
+     */
+    #[Hook('help')]
+    public function help($route_name, \Drupal\Core\Routing\RouteMatchInterface $route_match)
+    {
+        $output = '';
+        switch ($route_name) {
+            case 'help.page.http_status_code':
+                $output = '';
+                $output .= '<h3>' . $this->t('About') . '</h3>';
+                $output .= '<p>' . $this->t('HTTP Status Code returns a HTTP Status Code for a defined path') . '</p>';
+                $output .= '<p>' . $this->t('Use with care, fiddling with HTTP Headers could make both browsers and Google confused.') . '</p>';
+                $output .= '<p>' . $this->t('Manually adding a 410 Gone to a path makes Google remove it from their search index.') . '</p>';
+                return $output;
+            default:
+                return $output;
+        }
+    }
+}
diff --git a/tests/src/Functional/LoadTest.php b/tests/src/Functional/LoadTest.php
index 9533654..b33e394 100644
--- a/tests/src/Functional/LoadTest.php
+++ b/tests/src/Functional/LoadTest.php
@@ -2,6 +2,8 @@
 
 namespace Drupal\Tests\http_status_code\Functional;
 
+use PHPUnit\Framework\Attributes\Group;
+use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;
 use Drupal\Core\Url;
 use Drupal\Tests\BrowserTestBase;
 
@@ -10,6 +12,8 @@ use Drupal\Tests\BrowserTestBase;
  *
  * @group http_status_code
  */
+#[Group('http_status_code')]
+#[RunTestsInSeparateProcesses]
 class LoadTest extends BrowserTestBase {
 
   /**
