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..487fd80
--- /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 static 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;
+  }
+
+}
