diff --git a/css_grid.info.yml b/css_grid.info.yml
index 483a6b7..0756ad0 100644
--- a/css_grid.info.yml
+++ b/css_grid.info.yml
@@ -1,7 +1,7 @@
 name: 'CSS Grid'
 type: module
 description: 'Integrates CSS Grid with Layout Builder'
-core_version_requirement: ^8.8 || ^9 || ^10 || ^11
+core_version_requirement: ^10.1 || ^11 || ^12
 dependencies:
   - drupal:layout_builder
   - drupal:layout_discovery
diff --git a/css_grid.module b/css_grid.module
index 109beb6..2dd0f22 100644
--- a/css_grid.module
+++ b/css_grid.module
@@ -4,32 +4,22 @@
  * @file
  * Contains css_grid.module.
  */
-
+use Drupal\Core\Hook\Attribute\LegacyHook;
+use Drupal\css_grid\Hook\CssGridHooks;
 use Drupal\Core\Routing\RouteMatchInterface;
 
 /**
  * Implements hook_help().
  */
+#[LegacyHook]
 function css_grid_help($route_name, RouteMatchInterface $route_match) {
-  switch ($route_name) {
-    // Main module help for the css_grid module.
-    case 'help.page.css_grid':
-      $output = '';
-      $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('Integrates CSS Grid with Layout Builder') . '</p>';
-      return $output;
-
-    default:
-  }
+  return \Drupal::service(CssGridHooks::class)->help($route_name, $route_match);
 }
 
 /**
  * Implements hook_theme().
  */
+#[LegacyHook]
 function css_grid_theme() {
-  return [
-    'css_grid' => [
-      'render element' => 'children',
-    ],
-  ];
+  return \Drupal::service(CssGridHooks::class)->theme();
 }
diff --git a/css_grid.services.yml b/css_grid.services.yml
new file mode 100644
index 0000000..e55a67a
--- /dev/null
+++ b/css_grid.services.yml
@@ -0,0 +1,5 @@
+
+services:
+  Drupal\css_grid\Hook\CssGridHooks:
+    class: Drupal\css_grid\Hook\CssGridHooks
+    autowire: true
diff --git a/src/Hook/CssGridHooks.php b/src/Hook/CssGridHooks.php
new file mode 100644
index 0000000..ad396f2
--- /dev/null
+++ b/src/Hook/CssGridHooks.php
@@ -0,0 +1,42 @@
+<?php
+
+namespace Drupal\css_grid\Hook;
+
+use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\Core\Hook\Attribute\Hook;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
+/**
+ * Hook implementations for css_grid.
+ */
+class CssGridHooks
+{
+    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 css_grid module.
+            case 'help.page.css_grid':
+                $output = '';
+                $output .= '<h3>' . $this->t('About') . '</h3>';
+                $output .= '<p>' . $this->t('Integrates CSS Grid with Layout Builder') . '</p>';
+                return $output;
+            default:
+        }
+    }
+    /**
+     * Implements hook_theme().
+     */
+    #[Hook('theme')]
+    public function theme()
+    {
+        return [
+            'css_grid' => [
+                'render element' => 'children',
+            ],
+        ];
+    }
+}
