diff --git a/src/Hook/WebformHandlerCompareFieldsHooks.php b/src/Hook/WebformHandlerCompareFieldsHooks.php
new file mode 100644
index 0000000..e45e7db
--- /dev/null
+++ b/src/Hook/WebformHandlerCompareFieldsHooks.php
@@ -0,0 +1,86 @@
+<?php
+
+namespace Drupal\webform_handler_compare_fields\Hook;
+
+use Drupal\Core\Routing\RouteMatchInterface;
+use Drupal\Core\Hook\Attribute\Hook;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
+/**
+ * Hook implementations for webform_handler_compare_fields.
+ */
+class WebformHandlerCompareFieldsHooks
+{
+    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 msul_staff_db_connector module.
+            case 'help.page.webform_handler_compare_fields':
+                return $this->t(<<<'OUTPUT'
+                      <h2>About</h2>
+                      <p>Configurable handler for comparing two fields on a webform.</p>
+                
+                      <p style='font-size:60%;'>Written By Kevin Finkenbinder while working for MSU.</p>
+                
+                      <p style='font-size:60%;'>COPYRIGHT © 2019<br/>
+                      MICHIGAN STATE UNIVERSITY BOARD OF TRUSTEES<br/>
+                      ALL RIGHTS RESERVED<br/>
+                      <br/>
+                      PERMISSION IS GRANTED TO USE, COPY, CREATE DERIVATIVE WORKS AND
+                      REDISTRIBUTE THIS SOFTWARE AND SUCH DERIVATIVE WORKS FOR ANY PURPOSE,
+                      SO LONG AS THE NAME OF MICHIGAN STATE UNIVERSITY IS NOT USED IN ANY
+                      ADVERTISING OR PUBLICITY PERTAINING TO THE USE OR DISTRIBUTION OF THIS
+                      SOFTWARE WITHOUT SPECIFIC, WRITTEN PRIOR AUTHORIZATION. IF THE ABOVE
+                      COPYRIGHT NOTICE OR ANY OTHER IDENTIFICATION OF MICHIGAN STATE UNIVERSITY
+                      IS INCLUDED IN ANY COPY OF ANY PORTION OF THIS SOFTWARE, THEN THE
+                      DISCLAIMER BELOW MUST ALSO BE INCLUDED.<br/>
+                      <br/>
+                      THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION FROM MICHIGAN
+                      STATE UNIVERSITY AS TO ITS FITNESS FOR ANY PURPOSE, AND WITHOUT WARRANTY
+                      BY MICHIGAN STATE UNIVERSITY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
+                      INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY
+                      AND FITNESS FOR A PARTICULAR PURPOSE. THE MICHIGAN STATE UNIVERSITY
+                      BOARD OF TRUSTEES SHALL NOT BE LIABLE FOR ANY DAMAGES, INCLUDING SPECIAL,
+                      INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM
+                      ARISING OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN IF IT
+                      HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+                
+                      <h2>Installation and Configuration</h2>
+                      <p>Install and enable as any other drupal 8 module, no special
+                      requirements.<p>
+                      <p>To configure the interface</p>
+                      <ol>
+                        <li>Navigate to your webform's handlers page (e.g. 
+                        /admin/structure/webform/manage/<em><strong>form_id</strong></em>/handlers).</li>
+                        <li>Click [+ Add handler] button.</li>
+                        <li>Click [Add handler] next to "Validate Entries by Comparing 2
+                        fields"</li>
+                        <li>Enter the field names and comparison operator and data type
+                        information
+                          <ul>
+                            <li>Machine name is generally just the key from the form build
+                            page.</li>
+                            <li>Allowable operators are "==", "!=", "<>", "<", "<=", ">",
+                            and ">=".  
+                            While "===", and "!==" are included for completeness, they are of 
+                            little value as units are hard converted before comparison.</li>
+                            <li>Nearly all webform values are strings by default, choose how
+                            they should be handled if they are different, this is especially
+                            critical for dates.  Both sides of the comparison will be treated
+                            as the same type.</li>
+                            <li>At this time, both integers and floating point numbers are
+                            compared as floats.</li>
+                          </ul>
+                        </li>
+                        <li>Click [Save]</li>
+                        <li>This handler can be added multiple times one one form by repeated
+                        the above steps.</li>
+                      </ol>
+                OUTPUT);
+        }
+    }
+}
diff --git a/webform_handler_compare_fields.module b/webform_handler_compare_fields.module
index b74bdcc..8565f4b 100644
--- a/webform_handler_compare_fields.module
+++ b/webform_handler_compare_fields.module
@@ -4,7 +4,6 @@
  * @file
  * Contains msul_staff_db_connector.module.
  */
-
 /*
  *  Written By Kevin Finkenbinder while working for MSU.
  *
@@ -31,78 +30,14 @@
  *  OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN IF IT HAS BEEN OR IS
  *  HEREAFTER ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  */
-
+use Drupal\Core\Hook\Attribute\LegacyHook;
+use Drupal\webform_handler_compare_fields\Hook\WebformHandlerCompareFieldsHooks;
 use Drupal\Core\Routing\RouteMatchInterface;
 
 /**
  * Implements hook_help().
  */
+#[LegacyHook]
 function webform_handler_compare_fields_help($route_name, RouteMatchInterface $route_match) {
-  switch ($route_name) {
-    // Main module help for the msul_staff_db_connector module.
-    case 'help.page.webform_handler_compare_fields':
-      return t(<<<'OUTPUT'
-      <h2>About</h2>
-      <p>Configurable handler for comparing two fields on a webform.</p>
-
-      <p style='font-size:60%;'>Written By Kevin Finkenbinder while working for MSU.</p>
-
-      <p style='font-size:60%;'>COPYRIGHT © 2019<br/>
-      MICHIGAN STATE UNIVERSITY BOARD OF TRUSTEES<br/>
-      ALL RIGHTS RESERVED<br/>
-      <br/>
-      PERMISSION IS GRANTED TO USE, COPY, CREATE DERIVATIVE WORKS AND
-      REDISTRIBUTE THIS SOFTWARE AND SUCH DERIVATIVE WORKS FOR ANY PURPOSE,
-      SO LONG AS THE NAME OF MICHIGAN STATE UNIVERSITY IS NOT USED IN ANY
-      ADVERTISING OR PUBLICITY PERTAINING TO THE USE OR DISTRIBUTION OF THIS
-      SOFTWARE WITHOUT SPECIFIC, WRITTEN PRIOR AUTHORIZATION. IF THE ABOVE
-      COPYRIGHT NOTICE OR ANY OTHER IDENTIFICATION OF MICHIGAN STATE UNIVERSITY
-      IS INCLUDED IN ANY COPY OF ANY PORTION OF THIS SOFTWARE, THEN THE
-      DISCLAIMER BELOW MUST ALSO BE INCLUDED.<br/>
-      <br/>
-      THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION FROM MICHIGAN
-      STATE UNIVERSITY AS TO ITS FITNESS FOR ANY PURPOSE, AND WITHOUT WARRANTY
-      BY MICHIGAN STATE UNIVERSITY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
-      INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF MERCHANTABILITY
-      AND FITNESS FOR A PARTICULAR PURPOSE. THE MICHIGAN STATE UNIVERSITY
-      BOARD OF TRUSTEES SHALL NOT BE LIABLE FOR ANY DAMAGES, INCLUDING SPECIAL,
-      INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM
-      ARISING OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN IF IT
-      HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
-
-      <h2>Installation and Configuration</h2>
-      <p>Install and enable as any other drupal 8 module, no special
-      requirements.<p>
-      <p>To configure the interface</p>
-      <ol>
-        <li>Navigate to your webform's handlers page (e.g. 
-        /admin/structure/webform/manage/<em><strong>form_id</strong></em>/handlers).</li>
-        <li>Click [+ Add handler] button.</li>
-        <li>Click [Add handler] next to "Validate Entries by Comparing 2
-        fields"</li>
-        <li>Enter the field names and comparison operator and data type
-        information
-          <ul>
-            <li>Machine name is generally just the key from the form build
-            page.</li>
-            <li>Allowable operators are "==", "!=", "<>", "<", "<=", ">",
-            and ">=".  
-            While "===", and "!==" are included for completeness, they are of 
-            little value as units are hard converted before comparison.</li>
-            <li>Nearly all webform values are strings by default, choose how
-            they should be handled if they are different, this is especially
-            critical for dates.  Both sides of the comparison will be treated
-            as the same type.</li>
-            <li>At this time, both integers and floating point numbers are
-            compared as floats.</li>
-          </ul>
-        </li>
-        <li>Click [Save]</li>
-        <li>This handler can be added multiple times one one form by repeated
-        the above steps.</li>
-      </ol>
-OUTPUT
-    );
-
-  }
+  return \Drupal::service(WebformHandlerCompareFieldsHooks::class)->help($route_name, $route_match);
 }
diff --git a/webform_handler_compare_fields.services.yml b/webform_handler_compare_fields.services.yml
new file mode 100644
index 0000000..2014947
--- /dev/null
+++ b/webform_handler_compare_fields.services.yml
@@ -0,0 +1,5 @@
+
+services:
+  Drupal\webform_handler_compare_fields\Hook\WebformHandlerCompareFieldsHooks:
+    class: Drupal\webform_handler_compare_fields\Hook\WebformHandlerCompareFieldsHooks
+    autowire: true
