diff --git a/lib/Drupal/views/Plugins/Type/DisplayPluginManager.php b/lib/Drupal/views/Plugins/Type/DisplayPluginManager.php
index f6a510f1f1101ab890b97a9d61d98312fcc87057..1318e8d17e8e85df7cd54f489b3cf4d32d90a87e 100644
--- a/lib/Drupal/views/Plugins/Type/DisplayPluginManager.php
+++ b/lib/Drupal/views/Plugins/Type/DisplayPluginManager.php
@@ -9,7 +9,7 @@
 
 use Drupal\Component\Plugin\PluginManagerBase;
 use Drupal\Component\Plugin\Factory\DefaultFactory;
-use Drupal\views\Plugins\views\Discovery\ViewsDiscovery;
+use Drupal\views\Plugins\Discovery\ViewsDiscovery;
 
 class DisplayPluginManager extends PluginManagerBase {
   public function __construct() {
diff --git a/lib/Drupal/views/Plugins/Type/ExposedFormPluginManager.php b/lib/Drupal/views/Plugins/Type/ExposedFormPluginManager.php
index 66100a9a5a9c5e42f91cd2487399ad6aa161d5ca..5761cb8c425d34bb5d940cdbc624d65781266e3b 100644
--- a/lib/Drupal/views/Plugins/Type/ExposedFormPluginManager.php
+++ b/lib/Drupal/views/Plugins/Type/ExposedFormPluginManager.php
@@ -9,7 +9,7 @@
 
 use Drupal\Component\Plugin\PluginManagerBase;
 use Drupal\Component\Plugin\Factory\DefaultFactory;
-use Drupal\views\Plugins\views\Discovery\ViewsDiscovery;
+use Drupal\views\Plugins\Discovery\ViewsDiscovery;
 
 class ExposedFormPluginManager extends PluginManagerBase {
   public function __construct() {
diff --git a/lib/Drupal/views/Plugins/Type/HandlerPluginManager.php b/lib/Drupal/views/Plugins/Type/HandlerPluginManager.php
index 4fa54c8aaeef7fe33058f9537a7f575664118669..5335da81cdc377bff5e1aab7e901ce89bf15f21d 100644
--- a/lib/Drupal/views/Plugins/Type/HandlerPluginManager.php
+++ b/lib/Drupal/views/Plugins/Type/HandlerPluginManager.php
@@ -9,11 +9,22 @@
 
 use Drupal\Component\Plugin\PluginManagerBase;
 use Drupal\Component\Plugin\Factory\DefaultFactory;
-use Drupal\views\Plugins\views\Discovery\ViewsDiscovery;
+use Drupal\Core\Plugin\Discovery\AnnotatedClassDiscovery;
 
 class HandlerPluginManager extends PluginManagerBase {
-  public function __construct() {
-    $this->discovery = new ViewsDiscovery('views_plugins', 'handler');
-    $this->factory = new DefaultFactory($this);
+  /**
+   * The handler type of this plugin manager, for example filter or field.
+   *
+   * @var string
+   */
+  protected $type;
+
+  public function __construct($type) {
+    $this->type = $type;
+
+    if (in_array($this->type, array('sort', 'filter', 'relationship', 'field', 'area', 'argument'))) {
+      $this->discovery = new AnnotatedClassDiscovery('views', $this->type);
+    }
+    $this->factory = new DefaultFactory($this->discovery);
   }
 }
diff --git a/lib/Drupal/views/Plugins/Type/LocalizationPluginManager.php b/lib/Drupal/views/Plugins/Type/LocalizationPluginManager.php
index 7cd69c63fcfbbe7da76ac2bcff31f95b016ea35b..98f03360e12dd74e14dbc8adac063d21154be056 100644
--- a/lib/Drupal/views/Plugins/Type/LocalizationPluginManager.php
+++ b/lib/Drupal/views/Plugins/Type/LocalizationPluginManager.php
@@ -9,7 +9,7 @@
 
 use Drupal\Component\Plugin\PluginManagerBase;
 use Drupal\Component\Plugin\Factory\DefaultFactory;
-use Drupal\views\Plugins\views\Discovery\ViewsDiscovery;
+use Drupal\views\Plugins\Discovery\ViewsDiscovery;
 
 class LocalizationPluginManager extends PluginManagerBase {
   public function __construct() {