diff --git a/jasm.module b/jasm.module
index ea0de77..f3f6cde 100644
--- a/jasm.module
+++ b/jasm.module
@@ -4,23 +4,16 @@
  * @file
  * Contains jasm.module.
  */
-
+use Drupal\Core\Hook\Attribute\LegacyHook;
+use Drupal\jasm\Hook\JasmHooks;
 use Drupal\Core\Routing\RouteMatchInterface;
 
 /**
  * Implements hook_help().
  */
+#[LegacyHook]
 function jasm_help($route_name, RouteMatchInterface $route_match) {
-  switch ($route_name) {
-    // Main module help for the jasm module.
-    case 'help.page.jasm':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('Provides an easy way to capture and list 3rd party social media accounts to build links for display in various ways on the front-end of this website') . '</p>';
-      return $output;
-
-    default:
-  }
+  return \Drupal::service(JasmHooks::class)->help($route_name, $route_match);
 }
 
 /**
@@ -31,42 +24,8 @@ function jasm_help($route_name, RouteMatchInterface $route_match) {
  * @return array $theme
  *   The array of themeable elements provided by JASM
  */
-function jasm_theme() {
-  $theme = [];
-  $path  = \Drupal::service('extension.list.module')->getPath('jasm') . '/templates';
-
-  $theme['jasm_twitter_timeline'] = [
-    'template'            => 'jasm-twitter-timeline',
-
-    'variables'           => [
-      'twitter_handle'    => NULL,
-      'width'             => NULL,
-      'height'            => NULL,
-      'theme_color'       => 'light',
-      'link_color'        => NULL,
-    ],
-    'path'                => $path,
-  ];
-
-  $theme['jasm_facebook_timeline'] = [
-    'template'            => 'jasm-facebook-timeline',
-    'variables'           => [
-      'facebook_page_url' => NULL,
-      'facebook_app_id'   => NULL,
-      'width'             => NULL,
-      'height'            => NULL,
-    ],
-    'path'                => $path,
-  ];
-
-  $theme['jasm_facebook_sdk'] = [
-    'template'            => 'jasm-facebook-sdk',
-
-    'variables'           => [
-      'facebook_app_id'   => NULL,
-    ],
-    'path'                => $path,
-  ];
-
-  return $theme;
+#[LegacyHook]
+function jasm_theme()
+{
+    return \Drupal::service(JasmHooks::class)->theme();
 }
diff --git a/jasm.services.yml b/jasm.services.yml
new file mode 100644
index 0000000..3933d48
--- /dev/null
+++ b/jasm.services.yml
@@ -0,0 +1,5 @@
+
+services:
+  Drupal\jasm\Hook\JasmHooks:
+    class: Drupal\jasm\Hook\JasmHooks
+    autowire: true
diff --git a/src/Hook/JasmHooks.php b/src/Hook/JasmHooks.php
new file mode 100644
index 0000000..2524bc5
--- /dev/null
+++ b/src/Hook/JasmHooks.php
@@ -0,0 +1,74 @@
+<?php
+
+namespace Drupal\jasm\Hook;
+
+use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\Core\Hook\Attribute\Hook;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
+/**
+ * Hook implementations for jasm.
+ */
+class JasmHooks
+{
+    use StringTranslationTrait;
+    /**
+     * Implements hook_help().
+     */
+    #[Hook('help')]
+    public function help($route_name, \Drupal\Core\Routing\RouteMatchInterface $route_match)
+    {
+        switch ($route_name) {
+            // Main module help for the jasm module.
+            case 'help.page.jasm':
+                $output = '';
+                $output .= '<h3>' . $this->t('About') . '</h3>';
+                $output .= '<p>' . $this->t('Provides an easy way to capture and list 3rd party social media accounts to build links for display in various ways on the front-end of this website') . '</p>';
+                return $output;
+            default:
+        }
+    }
+    /**
+     * Implements hook_theme().
+     *
+     * Provide templates for the widget blocks provided by JASM
+     *
+     * @return array $theme
+     *   The array of themeable elements provided by JASM
+     */
+    #[Hook('theme')]
+    public function theme()
+    {
+        $theme = [
+        ];
+        $path = \Drupal::service('extension.list.module')->getPath('jasm') . '/templates';
+        $theme['jasm_twitter_timeline'] = [
+            'template' => 'jasm-twitter-timeline',
+            'variables' => [
+                'twitter_handle' => NULL,
+                'width' => NULL,
+                'height' => NULL,
+                'theme_color' => 'light',
+                'link_color' => NULL,
+            ],
+            'path' => $path,
+        ];
+        $theme['jasm_facebook_timeline'] = [
+            'template' => 'jasm-facebook-timeline',
+            'variables' => [
+                'facebook_page_url' => NULL,
+                'facebook_app_id' => NULL,
+                'width' => NULL,
+                'height' => NULL,
+            ],
+            'path' => $path,
+        ];
+        $theme['jasm_facebook_sdk'] = [
+            'template' => 'jasm-facebook-sdk',
+            'variables' => [
+                'facebook_app_id' => NULL,
+            ],
+            'path' => $path,
+        ];
+        return $theme;
+    }
+}
