diff --git a/modules/shs_chosen/shs_chosen.install b/modules/shs_chosen/shs_chosen.install
deleted file mode 100644
index 806e464..0000000
--- a/modules/shs_chosen/shs_chosen.install
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @file
- * Installation and update functions for "SHS: Chosen" module.
- */
-
-/**
- * Implements hook_install().
- */
-function shs_chosen_install() {
-  // Weight needs to be higher than taxonomy.module.
-  module_set_weight('shs_chosen', 1);
-}
diff --git a/modules/shs_chosen/shs_chosen.module b/modules/shs_chosen/shs_chosen.module
index 2af4154..48673bb 100644
--- a/modules/shs_chosen/shs_chosen.module
+++ b/modules/shs_chosen/shs_chosen.module
@@ -53,3 +53,15 @@ function shs_chosen_shs_js_settings_alter(&$settings_shs, $bundle, $field_name)
     ],
   ];
 }
+
+/**
+ * Implements hook_views_plugins_filter_alter().
+ */
+function shs_chosen_views_plugins_filter_alter(array &$plugins) {
+  foreach (['taxonomy_index_tid', 'taxonomy_index_tid_depth'] as $plugin) {
+    if (isset($plugins[$plugin])) {
+      $plugins['shs_' . $plugin]['class'] = $plugins['shs_chosen_' . $plugin]['class'];;
+      $plugins[$plugin]['class'] = $plugins['shs_' . $plugin]['class'];
+    }
+  }
+}
diff --git a/modules/shs_chosen/shs_chosen.views.inc b/modules/shs_chosen/shs_chosen.views.inc
deleted file mode 100644
index 33b63bd..0000000
--- a/modules/shs_chosen/shs_chosen.views.inc
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @file
- * Provides views data for shs_chosen.module.
- */
-
-use Drupal\field\FieldStorageConfigInterface;
-
-/**
- * Implements hook_views_data_alter().
- */
-function shs_chosen_views_data_alter(array &$data) {
-  // If (for whatever reasons) the filter is not set or someone changed it to
-  // a custom implementation, skip this.
-  if (!empty($data['taxonomy_term_field_data']['tid']['filter']['id']) && ('shs_taxonomy_index_tid' === $data['taxonomy_term_field_data']['tid']['filter']['id'])) {
-    $data['taxonomy_term_field_data']['tid']['filter']['id'] = 'shs_chosen_taxonomy_index_tid';
-  }
-  if (!empty($data['taxonomy_index']['tid']['filter']['id']) && ('shs_taxonomy_index_tid' === $data['taxonomy_index']['tid']['filter']['id'])) {
-    $data['taxonomy_index']['tid']['filter']['id'] = 'shs_chosen_taxonomy_index_tid';
-  }
-  if (!empty($data['node_field_data']['term_node_tid_depth']['filter']['id']) && ('shs_taxonomy_index_tid_depth' === $data['node_field_data']['term_node_tid_depth']['filter']['id'])) {
-    $data['node_field_data']['term_node_tid_depth']['filter']['id'] = 'shs_chosen_taxonomy_index_tid_depth';
-  }
-}
-
-/**
- * Implements hook_field_views_data_alter().
- *
- * @see taxonomy_field_views_data_alter()
- */
-function shs_chosen_field_views_data_alter(array &$data, FieldStorageConfigInterface $field_storage) {
-  if (('entity_reference' !== $field_storage->getType()) || ('taxonomy_term' !== $field_storage->getSetting('target_type'))) {
-    return;
-  }
-  foreach ($data as $table_name => $table_data) {
-    foreach ($table_data as $field_name => $field_data) {
-      if (isset($field_data['filter']) && ('delta' !== $field_name) && ('shs_taxonomy_index_tid' === $field_data['filter']['id'])) {
-        $data[$table_name][$field_name]['filter']['id'] = 'shs_chosen_taxonomy_index_tid';
-      }
-    }
-  }
-}
diff --git a/shs.install b/shs.install
deleted file mode 100644
index 0c5d881..0000000
--- a/shs.install
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-/**
- * @file
- * Installation and update functions for the Simple hierarchical select module.
- */
-
-/**
- * Implements hook_install().
- */
-function shs_install() {
-  // Weight needs to be higher than taxonomy.module.
-  module_set_weight('shs', 1);
-}
diff --git a/shs.module b/shs.module
index 1876d7f..b46c03b 100644
--- a/shs.module
+++ b/shs.module
@@ -114,3 +114,14 @@ function shs_term_has_children($tid) {
   $query->addTag('term_access');
   return ($query->countQuery()->execute()->fetchField() > 0);
 }
+
+/**
+ * Implements hook_views_plugins_filter_alter().
+ */
+function shs_views_plugins_filter_alter(array &$plugins) {
+  foreach (['taxonomy_index_tid', 'taxonomy_index_tid_depth'] as $plugin) {
+    if (isset($plugins[$plugin])) {
+      $plugins[$plugin]['class'] = $plugins['shs_' . $plugin]['class'];
+    }
+  }
+}
diff --git a/shs.views.inc b/shs.views.inc
deleted file mode 100644
index 50f5a0f..0000000
--- a/shs.views.inc
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/**
- * @file
- * Provides views data for shs.module.
- */
-
-use Drupal\field\FieldStorageConfigInterface;
-
-/**
- * Implements hook_views_data_alter().
- */
-function shs_views_data_alter(array &$data) {
-  // If (for whatever reasons) the filter is not set or someone changed it to
-  // a custom implementation, skip this.
-  if (!empty($data['taxonomy_term_field_data']['tid']['filter']['id']) && ('taxonomy_index_tid' === $data['taxonomy_term_field_data']['tid']['filter']['id'])) {
-    $data['taxonomy_term_field_data']['tid']['filter']['id'] = 'shs_taxonomy_index_tid';
-  }
-  if (!empty($data['taxonomy_index']['tid']['filter']['id']) && ('taxonomy_index_tid' === $data['taxonomy_index']['tid']['filter']['id'])) {
-    $data['taxonomy_index']['tid']['filter']['id'] = 'shs_taxonomy_index_tid';
-  }
-  if (!empty($data['node_field_data']['term_node_tid_depth']['filter']['id']) && ('taxonomy_index_tid_depth' === $data['node_field_data']['term_node_tid_depth']['filter']['id'])) {
-    $data['node_field_data']['term_node_tid_depth']['filter']['id'] = 'shs_taxonomy_index_tid_depth';
-  }
-}
-
-/**
- * Implements hook_field_views_data_alter().
- *
- * @see taxonomy_field_views_data_alter()
- */
-function shs_field_views_data_alter(array &$data, FieldStorageConfigInterface $field_storage) {
-  if (('entity_reference' !== $field_storage->getType()) || ('taxonomy_term' !== $field_storage->getSetting('target_type'))) {
-    return;
-  }
-  foreach ($data as $table_name => $table_data) {
-    foreach ($table_data as $field_name => $field_data) {
-      if (isset($field_data['filter']) && ('delta' !== $field_name) && ('taxonomy_index_tid' === $field_data['filter']['id'])) {
-        $data[$table_name][$field_name]['filter']['id'] = 'shs_taxonomy_index_tid';
-      }
-    }
-  }
-}
