diff --git a/node_weight.module b/node_weight.module
index 26a8138..fbc6991 100644
--- a/node_weight.module
+++ b/node_weight.module
@@ -4,7 +4,9 @@
  * @file
  * Code for the node_weight module.
  */
-
+use Drupal\Core\Hook\Attribute\LegacyHook;
+use Drupal\node_weight\Hook\NodeWeightHooks;
+use Drupal\Core\Utility\Error;
 use Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException;
 use Drupal\Component\Plugin\Exception\PluginNotFoundException;
 use Drupal\Core\Entity\EntityStorageException;
@@ -17,22 +19,10 @@ use Drupal\field\Entity\FieldStorageConfig;
 /**
  * Implements hook_help().
  */
-function node_weight_help($route_name, RouteMatchInterface $route_match) {
-  if ($route_name == 'help.page.node_weight') {
-    $text = file_get_contents(__DIR__ . '/README.md');
-    if (!Drupal::moduleHandler()->moduleExists('markdown')) {
-      return '<pre>' . $text . '</pre>';
-    }
-    else {
-      /** @var \Drupal\markdown\PluginManager\ParserManagerInterface $parser_manager */
-      $parser_manager = \Drupal::service('plugin.manager.markdown.parser');
-      $parser = $parser_manager->getDefaultParser([
-        'render_strategy' => ['type' => 'none'],
-      ]);
-      return $parser->parse($text);
-    }
-  }
-  return NULL;
+#[LegacyHook]
+function node_weight_help($route_name, RouteMatchInterface $route_match)
+{
+    return \Drupal::service(NodeWeightHooks::class)->help($route_name, $route_match);
 }
 
 /**
@@ -170,11 +160,10 @@ function node_weight_delete_field_node_weight($node_type) {
  *
  * Adds options to the node_type_form for editing default node options.
  */
-function node_weight_form_node_type_edit_form_alter(&$form, $form_state, $form_id) {
-  $node_type = $form['type']['#default_value'];
-
-  $form['weight_settings'] = node_weight_content_type_form_build($node_type);
-  $form['actions']['submit']['#submit'][] = 'node_weight_form_node_type_add_form_submit';
+#[LegacyHook]
+function node_weight_form_node_type_edit_form_alter(&$form, $form_state, $form_id)
+{
+    \Drupal::service(NodeWeightHooks::class)->formNodeTypeEditFormAlter($form, $form_state, $form_id);
 }
 
 /**
@@ -189,12 +178,10 @@ function node_weight_form_node_type_edit_form_submit($form, &$form_state) {
  *
  * Adds weight settings form to details of the node_type_add_form.
  */
-function node_weight_form_node_type_add_form_alter(&$form, $form_state, $form_id) {
-  $node_type = $form['type']['#default_value'];
-
-  $form['weight_settings'] = node_weight_content_type_form_build($node_type);
-  $form['actions']['submit']['#submit'][] = 'node_weight_form_node_type_add_form_submit';
-  $form['actions']['save_continue']['#submit'][] = 'node_weight_form_node_type_add_form_submit';
+#[LegacyHook]
+function node_weight_form_node_type_add_form_alter(&$form, $form_state, $form_id)
+{
+    \Drupal::service(NodeWeightHooks::class)->formNodeTypeAddFormAlter($form, $form_state, $form_id);
 }
 
 /**
@@ -249,7 +236,7 @@ function node_weight_content_type_form_submit($node_type, $weight_enabled) {
       node_weight_create_field_node_weight($node_type);
     }
     catch (InvalidPluginDefinitionException | PluginNotFoundException | EntityStorageException $e) {
-      watchdog_exception('node_weight', $e);
+      Error::logException(\Drupal::logger('node_weight'), $e);
     }
 
     if (!node_weight_node_type_enabled($node_type)) {
diff --git a/node_weight.services.yml b/node_weight.services.yml
new file mode 100644
index 0000000..1a8a67c
--- /dev/null
+++ b/node_weight.services.yml
@@ -0,0 +1,5 @@
+
+services:
+  Drupal\node_weight\Hook\NodeWeightHooks:
+    class: Drupal\node_weight\Hook\NodeWeightHooks
+    autowire: true
diff --git a/src/Hook/NodeWeightHooks.php b/src/Hook/NodeWeightHooks.php
new file mode 100644
index 0000000..ccc6731
--- /dev/null
+++ b/src/Hook/NodeWeightHooks.php
@@ -0,0 +1,68 @@
+<?php
+
+namespace Drupal\node_weight\Hook;
+
+use Drupal\Core\Utility\Error;
+use Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException;
+use Drupal\Component\Plugin\Exception\PluginNotFoundException;
+use Drupal\Core\Entity\EntityStorageException;
+use Drupal\field\Entity\FieldConfig;
+use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Url;
+use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\Core\Hook\Attribute\Hook;
+/**
+ * Hook implementations for node_weight.
+ */
+class NodeWeightHooks
+{
+    /**
+     * Implements hook_help().
+     */
+    #[Hook('help')]
+    public function help($route_name, \Drupal\Core\Routing\RouteMatchInterface $route_match)
+    {
+        if ($route_name == 'help.page.node_weight') {
+            $text = file_get_contents(__DIR__ . '/README.md');
+            if (!\Drupal::moduleHandler()->moduleExists('markdown')) {
+                return '<pre>' . $text . '</pre>';
+            } else {
+                /** @var \Drupal\markdown\PluginManager\ParserManagerInterface $parser_manager */
+                $parser_manager = \Drupal::service('plugin.manager.markdown.parser');
+                $parser = $parser_manager->getDefaultParser([
+                    'render_strategy' => [
+                        'type' => 'none',
+                    ],
+                ]);
+                return $parser->parse($text);
+            }
+        }
+        return NULL;
+    }
+    /**
+     * Implements hook_form_FORM_ID_form_alter().
+     *
+     * Adds options to the node_type_form for editing default node options.
+     */
+    #[Hook('form_node_type_edit_form_alter')]
+    public function formNodeTypeEditFormAlter(&$form, $form_state, $form_id)
+    {
+        $node_type = $form['type']['#default_value'];
+        $form['weight_settings'] = node_weight_content_type_form_build($node_type);
+        $form['actions']['submit']['#submit'][] = 'node_weight_form_node_type_add_form_submit';
+    }
+    /**
+     * Implements hook_form_FORM_ID_form_alter().
+     *
+     * Adds weight settings form to details of the node_type_add_form.
+     */
+    #[Hook('form_node_type_add_form_alter')]
+    public function formNodeTypeAddFormAlter(&$form, $form_state, $form_id)
+    {
+        $node_type = $form['type']['#default_value'];
+        $form['weight_settings'] = node_weight_content_type_form_build($node_type);
+        $form['actions']['submit']['#submit'][] = 'node_weight_form_node_type_add_form_submit';
+        $form['actions']['save_continue']['#submit'][] = 'node_weight_form_node_type_add_form_submit';
+    }
+}
