diff --git a/README.md b/README.md
index 1066a1d..e4a074a 100644
--- a/README.md
+++ b/README.md
@@ -33,19 +33,19 @@ To install the library using Composer:
 1. Add the proper repository to your `composer.json` file to be able to require
    the JS library:
 
-    ```
-        {
-          "type": "package",
-          "package": {
-            "name": "jqueryvalidate",
-            "version": "1.17.0",
-            "type": "drupal-library",
-            "dist": {
-              "url": "https://github.com/jquery-validation/jquery-validation/releases/download/1.17.0/jquery-validation-1.17.0.zip",
-              "type": "zip"
-            }
+    ```json
+      {
+        "type": "package",
+        "package": {
+          "name": "jqueryvalidate",
+          "version": "1.17.0",
+          "type": "drupal-library",
+          "dist": {
+            "url": "https://github.com/jquery-validation/jquery-validation/releases/download/1.17.0/jquery-validation-1.17.0.zip",
+            "type": "zip"
           }
         }
+      }
     ```
 
     It is always good to download and use the latest version here but new 
@@ -60,7 +60,8 @@ To install the library using Composer:
 If you need support for other contrib modules, you can add a CvValidator plugin
 to that module and it will be picked up by the base module.
 
-If you require custom javascript, you can implement `hook_clientside_validation_validator_info_alter()`
+If you require custom javascript, you can implement 
+`hook_clientside_validation_validator_info_alter()`
 
 # Contribute
 
diff --git a/clientside_validation.module b/clientside_validation.module
index 2c7728c..f9f46bd 100644
--- a/clientside_validation.module
+++ b/clientside_validation.module
@@ -1,10 +1,12 @@
 <?php
+
 /**
  * @file
  * Hook implementations for the Clientside Validation module.
  */
 
 use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Render\Element;
 
 /**
  * Implements hook_form_alter().
@@ -27,7 +29,7 @@ function clientside_validation_form_after_build($form, FormStateInterface $form_
  * Recursive function to add clientside validation to a from.
  */
 function clientside_validation_form_after_build_recurse($form_id, &$form, &$form_state) {
-  if (($children = Drupal\Core\Render\Element::children($form))) {
+  if (($children = Element::children($form))) {
     foreach ($children as $item) {
       $element = &$form[$item];
       clientside_validation_add_validation($element, $form_state, $form_id);
@@ -62,10 +64,19 @@ function clientside_validation_add_validation(&$element, FormStateInterface &$fo
  */
 function clientside_validation_should_validate($element, FormStateInterface &$form_state, $form_id) {
   $hook = 'clientside_validation_should_validate';
-  $implementations = \Drupal::moduleHandler()->getImplementations($hook);
-  $should_validate = TRUE;
+  $hook_args = [$element, $form_state, $form_id];
+
+  /** @var \Drupal\Core\Extension\ModuleHandlerInterface $module_handler */
+  $module_handler = \Drupal::moduleHandler();
+
+  $implementations = $module_handler->getImplementations($hook);
+
   foreach ($implementations as $implementation) {
-    $should_validate = $should_validate && (\Drupal::moduleHandler()->invoke($implementation, $hook, [$element, $form_state, $form_id]) !== FALSE);
+    if ($module_handler->invoke($implementation, $hook, $hook_args) === FALSE) {
+      // Don't validate even if any one implementation returns false.
+      return FALSE;
+    }
   }
-  return $should_validate;
+
+  return TRUE;
 }
diff --git a/clientside_validation_jquery/clientside_validation_jquery.info.yml b/clientside_validation_jquery/clientside_validation_jquery.info.yml
index f8c5592..f5df38b 100644
--- a/clientside_validation_jquery/clientside_validation_jquery.info.yml
+++ b/clientside_validation_jquery/clientside_validation_jquery.info.yml
@@ -4,4 +4,4 @@ description: 'Uses the jQuery Validate plugin as the clientside validation libra
 package: Clientside Validation
 core: 8.x
 dependencies:
-  - clientside_validation
+  - clientside_validation:clientside_validation
diff --git a/clientside_validation_jquery/clientside_validation_jquery.install b/clientside_validation_jquery/clientside_validation_jquery.install
index 82daeb7..0f9949c 100644
--- a/clientside_validation_jquery/clientside_validation_jquery.install
+++ b/clientside_validation_jquery/clientside_validation_jquery.install
@@ -10,3 +10,23 @@
  */
 function clientside_validation_jquery_update_8001() {
 }
+
+/**
+ * Implements hook_requirements().
+ */
+function clientside_validation_jquery_requirements($phase) {
+  $requirements = [];
+
+  if ($phase == 'runtime') {
+    $library_exists = file_exists('libraries/jqueryvalidate/dist/jquery.validate.js');
+
+    $requirements['clientside_validation_jquery_library'] = [
+      'title' => t('Clientside Validation jQuery library'),
+      'value' => $library_exists ? t('Downloaded in Library') : t('Downloaded in module OR using from CDN'),
+      'description' => $library_exists ? '' : t('Check README in module folder for instructions on how to use it through libraries (Drupal way).'),
+      'severity' => $library_exists ? REQUIREMENT_OK : REQUIREMENT_WARNING,
+    ];
+  }
+
+  return $requirements;
+}
diff --git a/clientside_validation_jquery/clientside_validation_jquery.module b/clientside_validation_jquery/clientside_validation_jquery.module
index 4533ad7..be40fd4 100644
--- a/clientside_validation_jquery/clientside_validation_jquery.module
+++ b/clientside_validation_jquery/clientside_validation_jquery.module
@@ -1,13 +1,16 @@
 <?php
+
 /**
  * @file
  * Hook implementations for the Clientside Validation jQuery module.
  */
 
+use Drupal\Core\Asset\AttachedAssetsInterface;
+
 /**
  * Implements hook_js_alter().
  */
-function clientside_validation_jquery_js_alter(&$javascript, \Drupal\Core\Asset\AttachedAssetsInterface $assets) {
+function clientside_validation_jquery_js_alter(&$javascript, AttachedAssetsInterface $assets) {
   if (\Drupal::moduleHandler()->moduleExists('ckeditor')) {
     $library_discovery = \Drupal::service('library.discovery');
     $ckeditor = $library_discovery->getLibraryByName('ckeditor', 'drupal.ckeditor');
@@ -94,23 +97,3 @@ function clientside_validation_jquery_library_info_alter(&$libraries, $extension
     }
   }
 }
-
-/**
- * Implements hook_requirements().
- */
-function clientside_validation_jquery_requirements($phase) {
-  $requirements = [];
-
-  if ($phase == 'runtime') {
-    $library_exists = file_exists('libraries/jqueryvalidate/dist/jquery.validate.js');
-
-    $requirements['clientside_validation_jquery_library'] = [
-      'title' => t('Clientside Validation jQuery library'),
-      'value' => $library_exists ? t('Downloaded in Library') : t('Downloaded in module OR using from CDN'),
-      'description' => $library_exists ? '' : t('Check README in module folder for instructions on how to use it through libraries (Drupal way).'),
-      'severity' => $library_exists ? REQUIREMENT_OK : REQUIREMENT_WARNING,
-    ];
-  }
-
-  return $requirements;
-}
diff --git a/src/Annotation/CvValidator.php b/src/Annotation/CvValidator.php
index dbc2c31..2e01482 100644
--- a/src/Annotation/CvValidator.php
+++ b/src/Annotation/CvValidator.php
@@ -7,7 +7,7 @@ use Drupal\Component\Annotation\Plugin;
 /**
  * Defines a clientside validation validator.
  *
- * Plugin Namespace: Plugin\clientside_validation\CvValidator
+ * Plugin Namespace: Plugin\clientside_validation\CvValidator.
  *
  * @see \Drupal\clientside_validation\ValidatorManager
  * @see plugin_api
@@ -47,6 +47,8 @@ class CvValidator extends Plugin {
 
   /**
    * An array of assets that can be #attached to a form element.
+   *
+   * @var array
    */
   public $attachments = [];
 
diff --git a/src/CvValidatorBase.php b/src/CvValidatorBase.php
index 85e8080..771837b 100644
--- a/src/CvValidatorBase.php
+++ b/src/CvValidatorBase.php
@@ -9,6 +9,11 @@ use Drupal\Component\Utility\Unicode;
 use Drupal\Core\StringTranslation\StringTranslationTrait;
 use Drupal\Component\Utility\NestedArray;
 
+/**
+ * Class CvValidatorBase.
+ *
+ * @package Drupal\clientside_validation
+ */
 abstract class CvValidatorBase extends PluginBase implements CvValidatorInterface {
   use StringTranslationTrait;
 
@@ -71,9 +76,26 @@ abstract class CvValidatorBase extends PluginBase implements CvValidatorInterfac
         : (isset($element['#attributes'][$attribute]) ? $element['#attributes'][$attribute] : NULL);
   }
 
-  protected function getElementTitle(array $element, $default = 'This field') {
+  /**
+   * Get title for form element.
+   *
+   * @param array $element
+   *   Element.
+   * @param string $default
+   *   Default value for the title.
+   *
+   * @return \Drupal\Core\StringTranslation\TranslatableMarkup|mixed
+   *   Title value.
+   */
+  protected function getElementTitle(array $element, $default = '') {
+
     $title = $this->getAttributeValue($element, 'title');
-    return $title ? $title : t($default);
+
+    if (empty($title) && empty($default)) {
+      return t('This field');
+    }
+
+    return $title ? $title : $default;
   }
 
 }
diff --git a/src/CvValidatorInterface.php b/src/CvValidatorInterface.php
index c688d21..ffce439 100644
--- a/src/CvValidatorInterface.php
+++ b/src/CvValidatorInterface.php
@@ -15,7 +15,7 @@ interface CvValidatorInterface extends PluginInspectionInterface {
    *
    * @param array $element
    *   The form element to validate.
-   * @param FormStateInterface $form_state
+   * @param \Drupal\Core\Form\FormStateInterface $form_state
    *   The form state of the form this element belongs to.
    */
   public function addValidation(array &$element, FormStateInterface $form_state);
diff --git a/src/Plugin/CvValidator/Max.php b/src/Plugin/CvValidator/Max.php
index 58598a3..cb761f2 100644
--- a/src/Plugin/CvValidator/Max.php
+++ b/src/Plugin/CvValidator/Max.php
@@ -26,7 +26,10 @@ class Max extends CvValidatorBase {
     // rule.
     return [
       'messages' => [
-        'max' => $this->t('The value in @title has to be less than @max.', ['@title' => $this->getElementTitle($element), '@max' => $this->getAttributeValue($element, 'max')]),
+        'max' => $this->t('The value in @title has to be less than @max.', [
+          '@title' => $this->getElementTitle($element),
+          '@max' => $this->getAttributeValue($element, 'max'),
+        ]),
       ],
     ];
   }
diff --git a/src/Plugin/CvValidator/MaxLength.php b/src/Plugin/CvValidator/MaxLength.php
index 5710ecc..3f40980 100644
--- a/src/Plugin/CvValidator/MaxLength.php
+++ b/src/Plugin/CvValidator/MaxLength.php
@@ -27,13 +27,19 @@ class MaxLength extends CvValidatorBase {
     if (isset($element['#type']) && $element['#type'] == 'select') {
       return [
         'messages' => [
-          'maxlength' => $this->t('@title field can only have a maximum of @max values.', ['@title' => $this->getElementTitle($element), '@max' => $this->getAttributeValue($element, 'maxlength')]),
+          'maxlength' => $this->t('@title field can only have a maximum of @max values.', [
+            '@title' => $this->getElementTitle($element),
+            '@max' => $this->getAttributeValue($element, 'maxlength'),
+          ]),
         ],
       ];
     }
     return [
       'messages' => [
-        'maxlength' => $this->t('@title field has a maximum length of @max.', ['@title' => $this->getElementTitle($element), '@max' => $this->getAttributeValue($element, 'maxlength')]),
+        'maxlength' => $this->t('@title field has a maximum length of @max.', [
+          '@title' => $this->getElementTitle($element),
+          '@max' => $this->getAttributeValue($element, 'maxlength'),
+        ]),
       ],
     ];
   }
diff --git a/src/Plugin/CvValidator/Min.php b/src/Plugin/CvValidator/Min.php
index c04b63a..f76e771 100644
--- a/src/Plugin/CvValidator/Min.php
+++ b/src/Plugin/CvValidator/Min.php
@@ -26,7 +26,10 @@ class Min extends CvValidatorBase {
     // rule.
     return [
       'messages' => [
-        'min' => $this->t('The value in @title has to be greater than @min.', ['@title' => $this->getElementTitle($element), '@min' => $this->getAttributeValue($element, 'min')]),
+        'min' => $this->t('The value in @title has to be greater than @min.', [
+          '@title' => $this->getElementTitle($element),
+          '@min' => $this->getAttributeValue($element, 'min'),
+        ]),
       ],
     ];
   }
diff --git a/src/Plugin/CvValidator/Step.php b/src/Plugin/CvValidator/Step.php
index 2d91eec..8cd023c 100644
--- a/src/Plugin/CvValidator/Step.php
+++ b/src/Plugin/CvValidator/Step.php
@@ -27,13 +27,20 @@ class Step extends CvValidatorBase {
       if (($min = $this->getAttributeValue($element, 'min'))) {
         return [
           'messages' => [
-            'step' => $this->t('The value in @title has to be greater than @min by steps of @step.', ['@title' => $this->getElementTitle($element), '@step' => $step, '@min' => $min]),
+            'step' => $this->t('The value in @title has to be greater than @min by steps of @step.', [
+              '@title' => $this->getElementTitle($element),
+              '@step' => $step,
+              '@min' => $min,
+            ]),
           ],
         ];
       }
       return [
         'messages' => [
-          'step' => $this->t('The value in @title has to be divisible by @step.', ['@title' => $this->getElementTitle($element), '@step' => $step]),
+          'step' => $this->t('The value in @title has to be divisible by @step.', [
+            '@title' => $this->getElementTitle($element),
+            '@step' => $step,
+          ]),
         ],
       ];
     }
diff --git a/src/Plugin/CvValidator/UrlInternalExternal.php b/src/Plugin/CvValidator/UrlInternalExternal.php
index 6f51236..14c8fd1 100644
--- a/src/Plugin/CvValidator/UrlInternalExternal.php
+++ b/src/Plugin/CvValidator/UrlInternalExternal.php
@@ -37,8 +37,8 @@ class UrlInternalExternal extends CvValidatorBase {
    */
   public function addValidation(array &$element, FormStateInterface $form_state) {
     parent::addValidation($element, $form_state);
-    // needs patch from https://www.drupal.org/node/2613694
-    switch($element['#link_type']) {
+    // Needs patch from https://www.drupal.org/node/2613694
+    switch ($element['#link_type']) {
       case LinkItemInterface::LINK_GENERIC:
         $element['#attributes']['pattern'] = '\<front\>|\/.*|\?.*|#.*|[hH][tT][Tt][pP][sS]?://.+|.*\(\d+\)';
         break;
diff --git a/src/ValidatorManager.php b/src/ValidatorManager.php
index d6b2f32..79c518d 100644
--- a/src/ValidatorManager.php
+++ b/src/ValidatorManager.php
@@ -17,7 +17,7 @@ class ValidatorManager extends DefaultPluginManager implements ValidatorManagerI
    *
    * @param \Traversable $namespaces
    *   An object that implements \Traversable which contains the root paths
-   *   keyed by the corresponding namespace to look for plugin implementations,
+   *   keyed by the corresponding namespace to look for plugin implementations.
    * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
    *   Cache backend instance to use.
    * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
@@ -47,7 +47,7 @@ class ValidatorManager extends DefaultPluginManager implements ValidatorManagerI
    *
    * @param array $element
    *   The form element to get the validators for.
-   * @param FormStateInterface $form_state
+   * @param \Drupal\Core\Form\FormStateInterface $form_state
    *   The form state of the form this element belongs to.
    *
    * @return array
@@ -69,4 +69,5 @@ class ValidatorManager extends DefaultPluginManager implements ValidatorManagerI
     }
     return $element_validators;
   }
+
 }
diff --git a/src/ValidatorManagerInterface.php b/src/ValidatorManagerInterface.php
index 280e43c..abe77ca 100644
--- a/src/ValidatorManagerInterface.php
+++ b/src/ValidatorManagerInterface.php
@@ -6,6 +6,11 @@ use Drupal\Component\Plugin\PluginManagerInterface;
 use Drupal\Component\Plugin\Discovery\CachedDiscoveryInterface;
 use Drupal\Core\Form\FormStateInterface;
 
+/**
+ * Interface ValidatorManagerInterface.
+ *
+ * @package Drupal\clientside_validation
+ */
 interface ValidatorManagerInterface extends PluginManagerInterface, CachedDiscoveryInterface {
 
   /**
@@ -13,7 +18,7 @@ interface ValidatorManagerInterface extends PluginManagerInterface, CachedDiscov
    *
    * @param array $element
    *   The form element to get the validators for.
-   * @param FormStateInterface $form_state
+   * @param \Drupal\Core\Form\FormStateInterface $form_state
    *   The form state of the form this element belongs to.
    */
   public function getValidators(array $element, FormStateInterface $form_state);
