diff --git a/help/api-example.html b/help/api-example.html
index b5e20b1d306819794052d469ed14d9c3f430aa46..55cace3f4e8977fd91c40820f1ed1df4e19ca1c5 100644
--- a/help/api-example.html
+++ b/help/api-example.html
@@ -97,7 +97,7 @@
       'plugin_id' => 'string',
      ),
      'argument' => array(
-       'handler' => 'views_handler_argument_string',
+       'plugin_id' => 'string',
      ),
      'sort' => array(
       'plugin_id' => 'standard',
diff --git a/lib/Drupal/views/Plugins/views/area/AreaPluginBase.php b/lib/Drupal/views/Plugins/views/area/AreaPluginBase.php
index 044fc5e9df4a61de6021f7a6f705fd11dac19c31..9a5fab054342f93767dfaf0a472e4df3cbf12f68 100644
--- a/lib/Drupal/views/Plugins/views/area/AreaPluginBase.php
+++ b/lib/Drupal/views/Plugins/views/area/AreaPluginBase.php
@@ -22,6 +22,9 @@
  *
  * @ingroup views_area_handlers
  */
+
+/**
+ */
 class AreaPluginBase extends Handler {
   /**
    * Get this field's label.
diff --git a/lib/Drupal/views/Plugins/views/area/Result.php b/lib/Drupal/views/Plugins/views/area/Result.php
index eda4601a905f09794c7b58210174fcd1df581b3e..da47b575c7eb67444281e8896fcb9586f885a425 100644
--- a/lib/Drupal/views/Plugins/views/area/Result.php
+++ b/lib/Drupal/views/Plugins/views/area/Result.php
@@ -7,11 +7,19 @@
 
 namespace Drupal\views\Plugins\views\area;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Views area handler to display some configurable result summary.
  *
  * @ingroup views_area_handlers
  */
+
+/**
+ * @Plugin(
+ *   plugin_id = "result"
+ * )
+ */
 class Result extends AreaPluginBase {
 
   function option_definition() {
diff --git a/lib/Drupal/views/Plugins/views/area/Text.php b/lib/Drupal/views/Plugins/views/area/Text.php
index 0dbca34859499645778adccb042a5aec478a6780..79c35062bb487c96f6d1820b707643173da4f6a3 100644
--- a/lib/Drupal/views/Plugins/views/area/Text.php
+++ b/lib/Drupal/views/Plugins/views/area/Text.php
@@ -7,11 +7,19 @@
 
 namespace Drupal\views\Plugins\views\area;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Views area text handler.
  *
  * @ingroup views_area_handlers
  */
+
+/**
+ * @Plugin(
+ *   plugin_id = "text"
+ * )
+ */
 class Text extends AreaPluginBase {
 
   function option_definition() {
diff --git a/lib/Drupal/views/Plugins/views/area/View.php b/lib/Drupal/views/Plugins/views/area/View.php
index ab4c435f39003cb7af0f98bd0486d22d8f9b5482..92a6bbe9101a28a3604bc71aee5a004b49c110d0 100644
--- a/lib/Drupal/views/Plugins/views/area/View.php
+++ b/lib/Drupal/views/Plugins/views/area/View.php
@@ -7,11 +7,19 @@
 
 namespace Drupal\views\Plugins\views\area;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Views area handlers. Insert a view inside of an area.
  *
  * @ingroup views_area_handlers
  */
+
+/**
+ * @Plugin(
+ *   plugin_id = "view"
+ * )
+ */
 class View extends AreaPluginBase {
 
   function option_definition() {
diff --git a/lib/Drupal/views/Plugins/views/argument/Date.php b/lib/Drupal/views/Plugins/views/argument/Date.php
index c439c2a966846cb2e653926741af0808273e92bd..5569e9d1073f9a9df037ab631d32adba07355f4e 100644
--- a/lib/Drupal/views/Plugins/views/argument/Date.php
+++ b/lib/Drupal/views/Plugins/views/argument/Date.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\views\Plugins\views\argument;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Abstract argument handler for dates.
  *
@@ -25,6 +27,12 @@
  *
  * @ingroup views_argument_handlers
  */
+
+/**
+ * @Plugin(
+ *   plugin_id = "date"
+ * )
+ */
 class Date extends ArgumentPluginBase {
 
   var $option_name = 'default_argument_date';
diff --git a/lib/Drupal/views/Plugins/views/argument/Formula.php b/lib/Drupal/views/Plugins/views/argument/Formula.php
index c9a3067b4cf08931314004563af731c232b19c54..4a5ee56898d79e3e291b605bea1eb5699843e2ba 100644
--- a/lib/Drupal/views/Plugins/views/argument/Formula.php
+++ b/lib/Drupal/views/Plugins/views/argument/Formula.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\views\Plugins\views\argument;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Abstract argument handler for simple formulae.
  *
@@ -17,6 +19,12 @@
  *
  * @ingroup views_argument_handlers
  */
+
+/**
+ * @Plugin(
+ *   plugin_id = "formula"
+ * )
+ */
 class Formula extends ArgumentPluginBase {
   var $formula = NULL;
   /**
diff --git a/lib/Drupal/views/Plugins/views/argument/GroupByNumeric.php b/lib/Drupal/views/Plugins/views/argument/GroupByNumeric.php
index 21cc065aee4b5c05c708f1ad16dc4e75fffcf9fd..9fa6cddf3f39ed89e77de5e5ce65abc806b508b8 100644
--- a/lib/Drupal/views/Plugins/views/argument/GroupByNumeric.php
+++ b/lib/Drupal/views/Plugins/views/argument/GroupByNumeric.php
@@ -7,11 +7,19 @@
 
 namespace Drupal\views\Plugins\views\argument;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Simple handler for arguments using group by.
  *
  * @ingroup views_argument_handlers
  */
+
+/**
+ * @Plugin(
+ *   plugin_id = "groupby_numeric"
+ * )
+ */
 class GroupByNumeric extends ArgumentPluginBase  {
   function query($group_by = FALSE) {
     $this->ensure_my_table();
diff --git a/lib/Drupal/views/Plugins/views/argument/ManyToOne.php b/lib/Drupal/views/Plugins/views/argument/ManyToOne.php
index 3f00c78f75ffbd55e31c8114bb07d59913d7a4b3..e5c519915641e0325da320af5153ae7474dd5dbc 100644
--- a/lib/Drupal/views/Plugins/views/argument/ManyToOne.php
+++ b/lib/Drupal/views/Plugins/views/argument/ManyToOne.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\views\Plugins\views\argument;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * An argument handler for use in fields that have a many to one relationship
  * with the table(s) to the left. This adds a bunch of options that are
@@ -20,6 +22,12 @@
  *
  * @ingroup views_argument_handlers
  */
+
+/**
+ * @Plugin(
+ *   plugin_id = "many_to_one"
+ * )
+ */
 class ManyToOne extends ArgumentPluginBase {
   function init(&$view, &$options) {
     parent::init($view, $options);
diff --git a/lib/Drupal/views/Plugins/views/argument/Null.php b/lib/Drupal/views/Plugins/views/argument/Null.php
index d86b8d4b7c698f0beeef0ee01be0311eb3a7809d..536ce16537f6fd167bd9356a178a075952866f91 100644
--- a/lib/Drupal/views/Plugins/views/argument/Null.php
+++ b/lib/Drupal/views/Plugins/views/argument/Null.php
@@ -7,11 +7,19 @@
 
 namespace Drupal\views\Plugins\views\argument;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Argument handler that ignores the argument.
  *
  * @ingroup views_argument_handlers
  */
+
+/**
+ * @Plugin(
+ *   plugin_id = "null"
+ * )
+ */
 class Null extends ArgumentPluginBase {
   function option_definition() {
     $options = parent::option_definition();
diff --git a/lib/Drupal/views/Plugins/views/argument/Numeric.php b/lib/Drupal/views/Plugins/views/argument/Numeric.php
index 9a8a9ff349c0939fbf34f3ffde486e34fbb3b4d1..0a063f923ef4f1eba2801aa2f5757851422570b8 100644
--- a/lib/Drupal/views/Plugins/views/argument/Numeric.php
+++ b/lib/Drupal/views/Plugins/views/argument/Numeric.php
@@ -7,12 +7,20 @@
 
 namespace Drupal\views\Plugins\views\argument;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Basic argument handler for arguments that are numeric. Incorporates
  * break_phrase.
  *
  * @ingroup views_argument_handlers
  */
+
+/**
+ * @Plugin(
+ *   plugin_id = "numeric"
+ * )
+ */
 class Numeric extends ArgumentPluginBase {
   /**
    * The operator used for the query: or|and.
diff --git a/lib/Drupal/views/Plugins/views/argument/String.php b/lib/Drupal/views/Plugins/views/argument/String.php
index c8f4e3d2c92ac6e3aad39bee3f73b36845fdfdb2..d2e64bc1b147d888553c6f28a6fa3066c1e269ab 100644
--- a/lib/Drupal/views/Plugins/views/argument/String.php
+++ b/lib/Drupal/views/Plugins/views/argument/String.php
@@ -7,12 +7,20 @@
 
 namespace Drupal\views\Plugins\views\argument;
 
+use Drupal\Core\Annotation\Plugin;
+
 /**
  * Basic argument handler to implement string arguments that may have length
  * limits.
  *
  * @ingroup views_argument_handlers
  */
+
+/**
+ * @Plugin(
+ *   plugin_id = "string"
+ * )
+ */
 class String extends ArgumentPluginBase {
   function init(&$view, &$options) {
     parent::init($view, $options);
diff --git a/lib/Drupal/views/Plugins/views/query/Sql.php b/lib/Drupal/views/Plugins/views/query/Sql.php
index 0bd77579b44d9d54d0de8b1e066440a12ac6eee6..6fa2961e924151b6546095be0bd50df723e62f5d 100644
--- a/lib/Drupal/views/Plugins/views/query/Sql.php
+++ b/lib/Drupal/views/Plugins/views/query/Sql.php
@@ -1539,8 +1539,8 @@ function get_aggregation_info() {
         'title' => t('Count'),
         'method' => 'views_query_default_aggregation_method_simple',
         'handler' => array(
-          'argument' => 'views_handler_argument_group_by_numeric',
-          'field' => 'views_handler_field_numeric',
+          'argument' => 'groupby_numeric',
+          'field' => 'groupby_numeric',
           'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
@@ -1549,8 +1549,8 @@ function get_aggregation_info() {
         'title' => t('Count DISTINCT'),
         'method' => 'views_query_default_aggregation_method_distinct',
         'handler' => array(
-          'argument' => 'views_handler_argument_group_by_numeric',
-          'field' => 'views_handler_field_numeric',
+          'argument' => 'groupby_numeric',
+          'field' => 'groupby_numeric',
           'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
@@ -1559,7 +1559,8 @@ function get_aggregation_info() {
         'title' => t('Sum'),
         'method' => 'views_query_default_aggregation_method_simple',
         'handler' => array(
-          'argument' => 'views_handler_argument_group_by_numeric',
+          'argument' => 'groupby_numeric',
+          'field' => 'groupby_numeric',
           'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
@@ -1568,7 +1569,8 @@ function get_aggregation_info() {
         'title' => t('Average'),
         'method' => 'views_query_default_aggregation_method_simple',
         'handler' => array(
-          'argument' => 'views_handler_argument_group_by_numeric',
+          'argument' => 'groupby_numeric',
+          'field' => 'groupby_numeric',
           'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
@@ -1577,7 +1579,8 @@ function get_aggregation_info() {
         'title' => t('Minimum'),
         'method' => 'views_query_default_aggregation_method_simple',
         'handler' => array(
-          'argument' => 'views_handler_argument_group_by_numeric',
+          'argument' => 'groupby_numeric',
+          'field' => 'groupby_numeric',
           'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
@@ -1586,7 +1589,8 @@ function get_aggregation_info() {
         'title' => t('Maximum'),
         'method' => 'views_query_default_aggregation_method_simple',
         'handler' => array(
-          'argument' => 'views_handler_argument_group_by_numeric',
+          'argument' => 'groupby_numeric',
+          'field' => 'groupby_numeric',
           'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
@@ -1595,7 +1599,8 @@ function get_aggregation_info() {
         'title' => t('Standard derivation'),
         'method' => 'views_query_default_aggregation_method_simple',
         'handler' => array(
-          'argument' => 'views_handler_argument_group_by_numeric',
+          'argument' => 'groupby_numeric',
+          'field' => 'groupby_numeric',
           'filter' => 'groupby_numeric',
           'sort' => 'groupby_numeric',
         ),
diff --git a/lib/Drupal/views/Tests/ViewsSqlTest.php b/lib/Drupal/views/Tests/ViewsSqlTest.php
index 583959ba25c836cdbc1fe649bcd8e990f28d80a3..4f0956f22dcd15d5c8842072475c5c497477f26b 100644
--- a/lib/Drupal/views/Tests/ViewsSqlTest.php
+++ b/lib/Drupal/views/Tests/ViewsSqlTest.php
@@ -126,7 +126,7 @@ protected function viewsData() {
         'click sortable' => TRUE,
       ),
       'argument' => array(
-        'handler' => 'views_handler_argument_numeric',
+        'plugin_id' => 'numeric',
       ),
       'filter' => array(
         'plugin_id' => 'numeric',
@@ -143,7 +143,7 @@ protected function viewsData() {
         'click sortable' => TRUE,
       ),
       'argument' => array(
-        'handler' => 'views_handler_argument_string',
+        'plugin_id' => 'string',
       ),
       'filter' => array(
         'plugin_id' => 'string',
@@ -160,7 +160,7 @@ protected function viewsData() {
         'click sortable' => TRUE,
       ),
       'argument' => array(
-        'handler' => 'views_handler_argument_numeric',
+        'plugin_id' => 'numeric',
       ),
       'filter' => array(
         'plugin_id' => 'numeric',
@@ -177,7 +177,7 @@ protected function viewsData() {
         'click sortable' => TRUE,
       ),
       'argument' => array(
-        'handler' => 'views_handler_argument_string',
+        'plugin_id' => 'string',
       ),
       'filter' => array(
         'plugin_id' => 'string',
@@ -194,13 +194,13 @@ protected function viewsData() {
         'click sortable' => TRUE,
       ),
       'argument' => array(
-        'handler' => 'views_handler_argument_date',
+        'plugin_id' => 'date',
       ),
       'filter' => array(
         'plugin_id' => 'date',
       ),
       'sort' => array(
-        'handler' => 'views_handler_sort_date',
+        'plugin_id' => 'date',
       ),
     );
     return $data;
diff --git a/modules/aggregator.views.inc b/modules/aggregator.views.inc
index 9fceaba34469d8cfdc238097dad55a10219ce77c..b134e9b94f72ae498f36862093f00c8f47d03d8f 100644
--- a/modules/aggregator.views.inc
+++ b/modules/aggregator.views.inc
@@ -37,7 +37,7 @@ function aggregator_views_data() {
       'click sortable' => TRUE,
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_numeric',
+      'plugin_id' => 'numeric',
       'numeric' => TRUE,
     ),
     'filter' => array(
@@ -126,7 +126,7 @@ function aggregator_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -136,7 +136,7 @@ function aggregator_views_data() {
     'help' => t('The guid of the original imported item.'),
      // Information for displaying a title as a field
     'field' => array(
-      'handler' => 'views_handler_field_xss',
+      'plugin_id' => 'xss',
       'click sortable' => TRUE,
      ),
     'sort' => array(
@@ -147,7 +147,7 @@ function aggregator_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -176,14 +176,14 @@ function aggregator_views_data() {
       'click sortable' => TRUE,
      ),
     'sort' => array(
-      'handler' => 'views_handler_sort_date',
+      'plugin_id' => 'date',
     ),
     // Information for accepting a title as a filter
     'filter' => array(
       'plugin_id' => 'date',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_date',
+      'plugin_id' => 'date',
     ),
   );
 
@@ -244,7 +244,7 @@ function aggregator_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -275,13 +275,13 @@ function aggregator_views_data() {
       'click sortable' => TRUE,
      ),
     'sort' => array(
-      'handler' => 'views_handler_sort_date',
+      'plugin_id' => 'date',
     ),
     'filter' => array(
       'plugin_id' => 'date',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_date',
+      'plugin_id' => 'date',
     ),
   );
 
@@ -291,7 +291,7 @@ function aggregator_views_data() {
     'help' => t('The description of the aggregator feed.'),
      // Information for displaying a title as a field
     'field' => array(
-      'handler' => 'views_handler_field_xss',
+      'plugin_id' => 'xss',
       'click sortable' => FALSE,
      ),
     'filter' => array(
@@ -309,14 +309,14 @@ function aggregator_views_data() {
       'click sortable' => TRUE,
      ),
     'sort' => array(
-      'handler' => 'views_handler_sort_date',
+      'plugin_id' => 'date',
     ),
     // Information for accepting a title as a filter
     'filter' => array(
       'plugin_id' => 'date',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_date',
+      'plugin_id' => 'date',
     ),
   );
 
diff --git a/modules/book.views.inc b/modules/book.views.inc
index fcc2799df54f5503fc1fb0957294ba8cbf3aff28..addfe0a13d1086e7bf1065d35b298c754613a639 100644
--- a/modules/book.views.inc
+++ b/modules/book.views.inc
@@ -74,7 +74,7 @@ function book_views_data() {
       'plugin_id' => 'numeric',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument',
+      'plugin_id' => 'standard',
     ),
   );
 
diff --git a/modules/comment.views.inc b/modules/comment.views.inc
index 50960171f4b9f2bfc3d72b071f0fc0f2a68ca7e8..c87846b8a29d6a9c6fb5f397103ff15904c28c6a 100644
--- a/modules/comment.views.inc
+++ b/modules/comment.views.inc
@@ -53,7 +53,7 @@ function comment_views_data() {
       'plugin_id' => 'standard',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -72,7 +72,7 @@ function comment_views_data() {
       'plugin_id' => 'standard',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_numeric',
+      'plugin_id' => 'numeric',
     ),
   );
 
@@ -91,7 +91,7 @@ function comment_views_data() {
       'plugin_id' => 'standard',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -110,7 +110,7 @@ function comment_views_data() {
       'plugin_id' => 'standard',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -129,7 +129,7 @@ function comment_views_data() {
       'plugin_id' => 'standard',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -148,7 +148,7 @@ function comment_views_data() {
       'plugin_id' => 'standard',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -161,7 +161,7 @@ function comment_views_data() {
       'click sortable' => TRUE,
     ),
     'sort' => array(
-      'handler' => 'views_handler_sort_date',
+      'plugin_id' => 'date',
     ),
     'filter' => array(
       'plugin_id' => 'date',
@@ -200,7 +200,7 @@ function comment_views_data() {
       'click sortable' => TRUE,
     ),
     'sort' => array(
-      'handler' => 'views_handler_sort_date',
+      'plugin_id' => 'date',
     ),
     'filter' => array(
       'plugin_id' => 'date',
@@ -362,7 +362,7 @@ function comment_views_data() {
       'plugin_id' => 'numeric',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_numeric',
+      'plugin_id' => 'numeric',
     ),
     'field' => array(
       'plugin_id' => 'numeric',
@@ -384,7 +384,7 @@ function comment_views_data() {
       'plugin_id' => 'numeric',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_numeric',
+      'plugin_id' => 'numeric',
     ),
     'field' => array(
       'handler' => 'views_handler_field_user',
@@ -432,7 +432,7 @@ function comment_views_data() {
       'click sortable' => TRUE,
     ),
     'sort' => array(
-      'handler' => 'views_handler_sort_date',
+      'plugin_id' => 'date',
     ),
     'filter' => array(
       'plugin_id' => 'date',
@@ -469,7 +469,7 @@ function comment_views_data() {
       'plugin_id' => 'standard',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument',
+      'plugin_id' => 'standard',
     ),
   );
 
@@ -520,7 +520,7 @@ function comment_views_data() {
       'plugin_id' => 'numeric',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_numeric',
+      'plugin_id' => 'numeric',
     ),
     'field' => array(
       'plugin_id' => 'numeric',
diff --git a/modules/field.views.inc b/modules/field.views.inc
index 81ad86acf54b6c4fde02427b0cd69a37ec2485ac..3a9371f553147d79005a037686df4ed8a07f59b4 100644
--- a/modules/field.views.inc
+++ b/modules/field.views.inc
@@ -375,7 +375,7 @@ function field_views_field_default_views_data($field) {
         $data[$table]['delta']['argument'] = array(
           'field' => 'delta',
           'table' => $table,
-          'handler' => 'views_handler_argument_numeric',
+          'plugin_id' => 'numeric',
           'additional fields' => $additional_fields,
           'empty field name' => t('- No value -'),
           'field_name' => $field['field_name'],
diff --git a/modules/language.views.inc b/modules/language.views.inc
index 79a3e3bd683d3d97d27e9ddeab3e1f0e3899f45f..d47b64fcddd067e0ee191a8bac8f92726eb7a1e7 100644
--- a/modules/language.views.inc
+++ b/modules/language.views.inc
@@ -33,7 +33,7 @@ function language_views_data() {
       'plugin_id' => 'string'
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
     'sort' => array(
       'plugin_id' => 'standard',
@@ -50,7 +50,7 @@ function language_views_data() {
       'plugin_id' => 'string'
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
     'sort' => array(
       'plugin_id' => 'standard',
@@ -67,7 +67,7 @@ function language_views_data() {
       'plugin_id' => 'numeric'
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_numeric',
+      'plugin_id' => 'numeric',
     ),
     'sort' => array(
       'plugin_id' => 'standard',
@@ -84,7 +84,7 @@ function language_views_data() {
       'plugin_id' => 'numeric'
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_numeric',
+      'plugin_id' => 'numeric',
     ),
     'sort' => array(
       'plugin_id' => 'standard',
diff --git a/modules/locale.views.inc b/modules/locale.views.inc
index 465b3f398eeeec48b14d7e1b183ddba32850478c..8f646c77942536e1f87635f41fa1bdc36e207471 100644
--- a/modules/locale.views.inc
+++ b/modules/locale.views.inc
@@ -32,7 +32,7 @@ function locale_views_data() {
       'click sortable' => TRUE,
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_numeric',
+      'plugin_id' => 'numeric',
       'numeric' => TRUE,
       'validate type' => 'lid',
     ),
@@ -60,7 +60,7 @@ function locale_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -107,7 +107,7 @@ function locale_views_data() {
       'handler' => 'views_handler_filter_locale_version',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
   );
 
diff --git a/modules/node.views.inc b/modules/node.views.inc
index 5e5c3fa18c29ab66f758c5a02f5d00a44dc2126c..4f597270578dee2f95155710b192e1119a9cad68 100644
--- a/modules/node.views.inc
+++ b/modules/node.views.inc
@@ -89,7 +89,7 @@ function node_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -389,7 +389,7 @@ function node_views_data() {
       'handler' => 'views_handler_filter_user_name',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\Numeric',
+      'plugin_id' => 'numeric',
     ),
     'field' => array(
       'handler' => 'views_handler_field_user',
@@ -505,7 +505,7 @@ function node_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
     ),
   );
 
diff --git a/modules/statistics.views.inc b/modules/statistics.views.inc
index 1df8eae9097875f8a60a92a6e749eefb07fb578c..0a9cd39fff4baf06e36a264e5a3a62ff2f3a403d 100644
--- a/modules/statistics.views.inc
+++ b/modules/statistics.views.inc
@@ -108,7 +108,7 @@ function statistics_views_data() {
       'click sortable' => TRUE,
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\Numeric',
+      'plugin_id' => 'numeric',
       'name field' => 'wid',
       'numeric' => TRUE,
     ),
@@ -133,7 +133,7 @@ function statistics_views_data() {
       'plugin_id' => 'string',
      ),
      'argument' => array(
-       'handler' => 'Drupal\views\Plugins\views\argument\String',
+       'plugin_id' => 'string',
      ),
      'sort' => array(
       'plugin_id' => 'standard',
@@ -156,7 +156,7 @@ function statistics_views_data() {
       'plugin_id' => 'standard',
      ),
      'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\sort\String',
+      'plugin_id' => 'standard',
      ),
   );
 
@@ -211,7 +211,7 @@ function statistics_views_data() {
       'plugin_id' => 'standard',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
     ),
   );
 
diff --git a/modules/system.views.inc b/modules/system.views.inc
index e4bf4d6254334820d8a251ca11e6f3167c213ea7..8b789e8451f4a27b3b9e9e4aec9c6af721c08b13 100644
--- a/modules/system.views.inc
+++ b/modules/system.views.inc
@@ -66,7 +66,7 @@ function system_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -85,7 +85,7 @@ function system_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -104,7 +104,7 @@ function system_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -398,7 +398,7 @@ function system_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
     ),
     'sort' => array(
       'plugin_id' => 'standard',
@@ -415,7 +415,7 @@ function system_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
     ),
     'sort' => array(
       'plugin_id' => 'standard',
@@ -429,7 +429,7 @@ function system_views_data() {
       'click sortable' => TRUE,
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\Numeric',
+      'plugin_id' => 'numeric',
     ),
     'filter' => array(
       'plugin_id' => 'numeric',
@@ -474,7 +474,7 @@ function system_views_data() {
       'click sortable' => TRUE,
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
       'name field' => 'filename', // the field to display in the summary.
     ),
     'filter' => array(
@@ -493,7 +493,7 @@ function system_views_data() {
       'click sortable' => TRUE,
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
       'name field' => 'name', // the field to display in the summary.
     ),
     'filter' => array(
@@ -512,7 +512,7 @@ function system_views_data() {
       'click sortable' => TRUE,
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
       'name field' => 'type', // the field to display in the summary.
     ),
     'filter' => array(
@@ -531,7 +531,7 @@ function system_views_data() {
       'click sortable' => TRUE,
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\Numeric',
+      'plugin_id' => 'numeric',
       'name field' => 'status', // the field to display in the summary.
     ),
     'filter' => array(
@@ -550,7 +550,7 @@ function system_views_data() {
       'click sortable' => TRUE,
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\Numeric',
+      'plugin_id' => 'numeric',
       'name field' => 'schema_version', // the field to display in the summary.
     ),
     'filter' => array(
diff --git a/modules/taxonomy.views.inc b/modules/taxonomy.views.inc
index 1e1f8671bc97fdd5f89a3dee549b106cf732d29c..753b85272b0822de17790ad8093a0d0b1b3f436d 100644
--- a/modules/taxonomy.views.inc
+++ b/modules/taxonomy.views.inc
@@ -94,7 +94,7 @@ function taxonomy_views_data() {
       'click sortable' => TRUE,
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\Numeric',
+      'plugin_id' => 'numeric',
       'name field' => 'weight',
     ),
     'sort' => array(
@@ -182,7 +182,7 @@ function taxonomy_views_data() {
       'title' => t('Representative node'),
       'label'  => t('Representative node'),
       'help' => t('Obtains a single representative node for each term, according to a chosen sort criterion.'),
-      'handler' => 'Drupal\views\Plugins\views\relationship\GroupwiseMax',
+      'plugin_id' => 'groupwise_max',
       'relationship field' => 'tid',
       'outer field' => 'taxonomy_term_data.tid',
       'argument table' => 'taxonomy_term_data',
@@ -208,7 +208,7 @@ function taxonomy_views_data() {
       'help' => t('Taxonomy term name.'),
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
       'help' => t('Taxonomy term name.'),
       'many to one' => TRUE,
       'empty field name' => t('Uncategorized'),
@@ -230,7 +230,7 @@ function taxonomy_views_data() {
       'plugin_id' => 'numeric',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\Numeric',
+      'plugin_id' => 'numeric',
     ),
   );
 
diff --git a/modules/user.views.inc b/modules/user.views.inc
index d50c114b7b8a3e983372b55f9f24bb786ae377ce..e3b2ac5e54f737f7c5232f2a7177aed04f7393a7 100644
--- a/modules/user.views.inc
+++ b/modules/user.views.inc
@@ -88,7 +88,7 @@ function user_views_data() {
       'title' => t('Representative node'),
       'label'  => t('Representative node'),
       'help' => t('Obtains a single representative node for each user, according to a chosen sort criterion.'),
-      'handler' => 'Drupal\views\Plugins\views\relationship\GroupwiseMax',
+      'plugin_id' => 'groupwise_max',
       'relationship field' => 'uid',
       'outer field' => 'users.uid',
       'argument table' => 'users',
@@ -121,7 +121,7 @@ function user_views_data() {
       'plugin_id' => 'standard',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
     ),
     'filter' => array(
       'plugin_id' => 'string',
@@ -146,7 +146,7 @@ function user_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\String',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -492,7 +492,7 @@ function user_views_data() {
       'numeric' => TRUE,
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\Numeric',
+      'plugin_id' => 'numeric',
       'numeric' => TRUE,
     ),
   );
@@ -506,7 +506,7 @@ function user_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\Numeric',
+      'plugin_id' => 'numeric',
     ),
   );
   $data['authmap']['module'] = array(
@@ -519,7 +519,7 @@ function user_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argment\String',
+      'plugin_id' => 'string',
     ),
   );
 
diff --git a/modules/views.views.inc b/modules/views.views.inc
index 30e821e1eb9b14cb815b996c89fdd0739501815e..9f04f6806894bc3baca8055cd33afafceb34e305 100644
--- a/modules/views.views.inc
+++ b/modules/views.views.inc
@@ -29,7 +29,7 @@ function views_views_data() {
     'title' => t('Null'),
     'help' => t('Allow a contextual filter value to be ignored. The query will not be altered by this contextual filter value. Can be used when contextual filter values come from the URL, and a part of the URL needs to be ignored.'),
     'argument' => array(
-      'handler' => 'Drupal\views\Plugins\views\argument\Null',
+      'plugin_id' => 'null',
     ),
   );
 
@@ -53,23 +53,24 @@ function views_views_data() {
     'title' => t('Text area'),
     'help' => t('Provide markup text for the area.'),
     'area' => array(
-      'handler' => 'Drupal\views\Plugins\views\area\Text',
+      'plugin_id' => 'text',
     ),
   );
 
-  $data['views']['area_text_custom'] = array(
-    'title' => t('Unfiltered text'),
-    'help' => t('Add unrestricted, custom text or markup. This is similar to the custom text field.'),
-    'area' => array(
-      'handler' => 'views_handler_area_text_custom',
-    ),
-  );
+  // @todo: this class seems to be missing.
+//  $data['views']['area_text_custom'] = array(
+//    'title' => t('Unfiltered text'),
+//    'help' => t('Add unrestricted, custom text or markup. This is similar to the custom text field.'),
+//    'area' => array(
+//      'handler' => 'views_handler_area_text_custom',
+//    ),
+//  );
 
   $data['views']['view'] = array(
     'title' => t('View area'),
     'help' => t('Insert a view inside an area.'),
     'area' => array(
-      'handler' => 'Drupal\views\Plugins\views\area\View',
+      'plugin_id' => 'view',
     ),
   );
 
@@ -77,7 +78,7 @@ function views_views_data() {
     'title' => t('Result summary'),
     'help' => t('Shows result summary, for example the items per page.'),
     'area' => array(
-      'handler' => 'Drupal\views\Plugins\views\area\Result',
+      'plugin_id' => 'result',
     ),
   );
 
diff --git a/views.api.php b/views.api.php
index d774f5d652c3bd917c0de37d593c7ecfebf73c37..a4ecd9b13e8c18bdb2bbb431b9b9e108c8ae6da7 100644
--- a/views.api.php
+++ b/views.api.php
@@ -394,7 +394,7 @@ function hook_views_data() {
       'plugin_id' => 'string',
     ),
     'argument' => array(
-      'handler' => 'views_handler_argument_string',
+      'plugin_id' => 'string',
     ),
   );
 
@@ -498,7 +498,7 @@ function hook_views_data_alter(&$data) {
       'base' => 'example_table', // Table we're joining to.
       'base field' => 'eid', // Field on the joined table.
       'field' => 'fid', // Real field name on the 'foo' table.
-      'handler' => 'views_handler_relationship',
+      'plugin_id' => 'standard',
       'label' => t('Default label for relationship'),
       'title' => t('Title seen when adding relationship'),
       'help' => t('More information about relationship.'),