diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/AggregatorFeed.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/AggregatorFeed.php
index 029c382..d4da74b 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/AggregatorFeed.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/AggregatorFeed.php
@@ -6,17 +6,18 @@
  */
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
-use Drupal\migrate\Plugin\RequirementsInterface;
+
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
 /**
  * Drupal 6 feed source from database.
  *
  * @MigrateSource(
- *   id = "d6_aggregator_feed"
+ *   id = "d6_aggregator_feed",
+ *   source_provider = "aggregator"
  * )
  */
-class AggregatorFeed extends DrupalSqlBase implements RequirementsInterface {
+class AggregatorFeed extends DrupalSqlBase {
 
   /**
    * {@inheritdoc}
@@ -54,7 +55,7 @@ public function fields() {
       'link' => $this->t('Parent website of feed.'),
       'description' => $this->t('Parent website\'s description fo the feed.'),
       'image' => $this->t('An image representing the feed.'),
-      'etag' => $this->t('Entity tage HTTP response header.'),
+      'etag' => $this->t('Entity tag HTTP response header.'),
       'modified' => $this->t('When the feed was last modified.'),
       'block' => $this->t("Number of items to display in the feed's block."),
     );
@@ -63,13 +64,6 @@ public function fields() {
   /**
    * {@inheritdoc}
    */
-  public function checkRequirements() {
-    return $this->moduleExists('aggregator');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function getIds() {
     $ids['fid']['type'] = 'integer';
     return $ids;
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/AggregatorItem.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/AggregatorItem.php
index efc5900..0e7646b 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/AggregatorItem.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/AggregatorItem.php
@@ -7,7 +7,6 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
 
@@ -15,10 +14,11 @@
  * Drupal 6 aggregator item source from database.
  *
  * @MigrateSource(
- *   id = "d6_aggregator_item"
+ *   id = "d6_aggregator_item",
+ *   source_provider = "aggregator"
  * )
  */
-class AggregatorItem extends DrupalSqlBase implements RequirementsInterface {
+class AggregatorItem extends DrupalSqlBase {
 
   /**
    * {@inheritdoc}
@@ -50,16 +50,8 @@ public function fields() {
   /**
    * {@inheritdoc}
    */
-  public function checkRequirements() {
-    return $this->moduleExists('aggregator');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function getIds() {
     $ids['iid']['type'] = 'integer';
     return $ids;
   }
-
 }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Comment.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Comment.php
index 333b6c1..2eddf72 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Comment.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Comment.php
@@ -7,19 +7,18 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
 use Drupal\migrate\Row;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
-
 /**
  * Drupal 6 comment source from database.
  *
  * @MigrateSource(
- *   id = "d6_comment"
+ *   id = "d6_comment",
+ *   source_provider = "comment"
  * )
  */
-class Comment extends DrupalSqlBase implements RequirementsInterface {
+class Comment extends DrupalSqlBase {
 
   /**
    * {@inheritdoc}
@@ -43,7 +42,6 @@ public function prepareRow(Row $row, $keep = TRUE) {
     return parent::prepareRow($row);
   }
 
-
   /**
    * {@inheritdoc}
    */
@@ -70,16 +68,8 @@ public function fields() {
   /**
    * {@inheritdoc}
    */
-  public function checkRequirements() {
-    return $this->moduleExists('comment');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function getIds() {
     $ids['cid']['type'] = 'integer';
     return $ids;
   }
-
 }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php
index 210ae47..067c63d 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php
@@ -7,18 +7,17 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
-
 /**
  * Drupal 6 contact category source from database.
  *
  * @MigrateSource(
- *   id = "d6_contact_category"
+ *   id = "d6_contact_category",
+ *   source_provider = "contact"
  * )
  */
-class ContactCategory extends DrupalSqlBase implements RequirementsInterface {
+class ContactCategory extends DrupalSqlBase {
 
   /**
    * {@inheritdoc}
@@ -55,13 +54,6 @@ public function fields() {
   /**
    * {@inheritdoc}
    */
-  public function checkRequirements() {
-    return $this->moduleExists('contact');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function getIds() {
     $ids['cid']['type'] = 'integer';
     return $ids;
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Field.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Field.php
index 45e287d..96ce07a 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Field.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Field.php
@@ -7,7 +7,6 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
 use Drupal\migrate\Row;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
@@ -15,10 +14,11 @@
  * Drupal 6 field source from database.
  *
  * @MigrateSource(
- *   id = "d6_field"
+ *   id = "d6_field",
+ *   source_provider = "content"
  * )
  */
-class Field extends DrupalSqlBase implements RequirementsInterface {
+class Field extends DrupalSqlBase {
 
   /**
    * {@inheritdoc}
@@ -82,13 +82,6 @@ public function prepareRow(Row $row, $keep = TRUE) {
   /**
    * {@inheritdoc}
    */
-  public function checkRequirements() {
-    return $this->moduleExists('content') && $this->getModuleSchemaVersion('content') >= 6001;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function getIds() {
     $ids['field_name'] = array(
       'type' => 'string',
@@ -96,5 +89,4 @@ public function getIds() {
     );
     return $ids;
   }
-
 }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/FieldInstance.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/FieldInstance.php
index d7a4631..66049fd 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/FieldInstance.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/FieldInstance.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
-
 use Drupal\migrate\Row;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
@@ -16,10 +14,11 @@
  * Drupal 6 field instances source from database.
  *
  * @MigrateSource(
- *   id = "d6_field_instance"
+ *   id = "d6_field_instance",
+ *   source_provider = "content"
  * )
  */
-class FieldInstance extends DrupalSqlBase implements RequirementsInterface {
+class FieldInstance extends DrupalSqlBase {
 
   /**
    * {@inheritdoc}
@@ -87,13 +86,6 @@ public function prepareRow(Row $row, $keep = TRUE) {
   /**
    * {@inheritdoc}
    */
-  public function checkRequirements() {
-    return $this->moduleExists('content') && $this->getModuleSchemaVersion('content') >= 6001;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function getIds() {
     $ids = array(
       'field_name' => array(
@@ -106,5 +98,4 @@ public function getIds() {
     );
     return $ids;
   }
-
 }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Menu.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Menu.php
index 249e467..4f9d7e5 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Menu.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Menu.php
@@ -7,18 +7,17 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-
-use Drupal\migrate\Plugin\RequirementsInterface;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
 /**
  * Drupal 6 menu source from database.
  *
  * @MigrateSource(
- *   id = "d6_menu"
+ *   id = "d6_menu",
+ *   source_provider = "menu"
  * )
  */
-class Menu extends DrupalSqlBase implements RequirementsInterface {
+class Menu extends DrupalSqlBase {
 
   /**
    * {@inheritdoc}
@@ -43,16 +42,8 @@ public function fields() {
   /**
    * {@inheritdoc}
    */
-  public function checkRequirements() {
-    return $this->moduleExists('menu');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function getIds() {
     $ids['menu_name']['type'] = 'string';
     return $ids;
   }
 }
-
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/NodeRevision.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/NodeRevision.php
index 28109a5..87683e4 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/NodeRevision.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/NodeRevision.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
-
 /**
  * Drupal 6 node revision source from database.
  *
@@ -39,5 +37,4 @@ public function getIds() {
     $ids['vid']['alias'] = 'nr';
     return $ids;
   }
-
 }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ProfileField.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ProfileField.php
index 4ab4046..e75989f 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ProfileField.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ProfileField.php
@@ -7,18 +7,17 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
-
 /**
  * Drupal 6 profile fields source from database.
  *
  * @MigrateSource(
- *   id = "d6_profile_field"
+ *   id = "d6_profile_field",
+ *   source_provider = "profile"
  * )
  */
-class ProfileField extends DrupalSqlBase implements RequirementsInterface {
+class ProfileField extends DrupalSqlBase {
 
   /**
    * {@inheritdoc}
@@ -68,13 +67,6 @@ public function fields() {
   /**
    * {@inheritdoc}
    */
-  public function checkRequirements() {
-    return $this->moduleExists('profile');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function getIds() {
     $ids['fid']['type'] = 'integer';
     return $ids;
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ProfileFieldValues.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ProfileFieldValues.php
index a94a7e3..41d735f 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ProfileFieldValues.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ProfileFieldValues.php
@@ -7,7 +7,6 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
 use Drupal\migrate\Plugin\SourceEntityInterface;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 use Drupal\migrate\Row;
@@ -17,10 +16,11 @@
  * Drupal 6 profile fields values source.
  *
  * @MigrateSource(
- *   id = "d6_profile_field_values"
+ *   id = "d6_profile_field_values",
+ *   source_provider = "profile"
  * )
  */
-class ProfileFieldValues extends DrupalSqlBase implements SourceEntityInterface, RequirementsInterface {
+class ProfileFieldValues extends DrupalSqlBase implements SourceEntityInterface {
 
   /**
    * {@inheritdoc}
@@ -88,13 +88,6 @@ public function fields() {
   /**
    * {@inheritdoc}
    */
-  public function checkRequirements() {
-    return $this->moduleExists('profile');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function getIds() {
     return array(
       'uid' => array(
@@ -117,5 +110,4 @@ public function bundleMigrationRequired() {
   public function entityTypeId() {
     return 'user';
   }
-
 }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Term.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Term.php
index 3b4a7e5..ffaf9ee 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Term.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Term.php
@@ -7,7 +7,6 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
 use Drupal\migrate\Row;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
@@ -17,10 +16,11 @@
  * @todo Support term_relation, term_synonym table if possible.
  *
  * @MigrateSource(
- *   id = "d6_taxonomy_term"
+ *   id = "d6_taxonomy_term",
+ *   source_provider = "taxonomy"
  * )
  */
-class Term extends DrupalSqlBase implements RequirementsInterface {
+class Term extends DrupalSqlBase {
 
   /**
    * {@inheritdoc}
@@ -69,16 +69,8 @@ public function prepareRow(Row $row) {
   /**
    * {@inheritdoc}
    */
-  public function checkRequirements() {
-    return $this->moduleExists('taxonomy');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
   public function getIds() {
     $ids['tid']['type'] = 'integer';
     return $ids;
   }
-
 }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Upload.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Upload.php
index f10ee01..9ec1903 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Upload.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Upload.php
@@ -7,7 +7,6 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
 use Drupal\migrate\Row;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
@@ -15,10 +14,11 @@
  * Drupal 6 upload source from database.
  *
  * @MigrateSource(
- *   id = "d6_upload"
+ *   id = "d6_upload",
+ *   source_provider = "upload"
  * )
  */
-class Upload extends DrupalSqlBase implements RequirementsInterface {
+class Upload extends DrupalSqlBase {
 
   /**
    * The join options between the node and the upload table.
@@ -62,7 +62,6 @@ public function fields() {
     );
   }
 
-
   /**
    * {@inheritdoc}
    */
@@ -71,12 +70,4 @@ public function getIds() {
     $ids['vid']['alias'] = 'u';
     return $ids;
   }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function checkRequirements() {
-    return $this->moduleExists('upload');
-  }
-
 }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Vocabulary.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Vocabulary.php
index 8911840..211e8a9 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Vocabulary.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Vocabulary.php
@@ -7,18 +7,17 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
-
 use Drupal\migrate\Row;
 
 /**
  * Drupal 6 vocabularies source from database.
  *
  * @MigrateSource(
- *   id = "d6_taxonomy_vocabulary"
+ *   id = "d6_taxonomy_vocabulary",
+ *   source_provider = "taxonomy"
  * )
  */
-class Vocabulary extends VocabularyBase implements RequirementsInterface {
+class Vocabulary extends VocabularyBase {
 
   /**
    * {@inheritdoc}
@@ -41,5 +40,4 @@ public function getIds() {
     $ids['vid']['type'] = 'integer';
     return $ids;
   }
-
 }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/VocabularyBase.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/VocabularyBase.php
index a3571da..54ee993 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/VocabularyBase.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/VocabularyBase.php
@@ -7,15 +7,13 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
-
 use Drupal\migrate\Row;
 use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
 
 /**
  * Drupal 6 vocabularies source base.
  */
-abstract class VocabularyBase extends DrupalSqlBase implements RequirementsInterface {
+abstract class VocabularyBase extends DrupalSqlBase {
 
   /**
    * {@inheritdoc}
@@ -57,12 +55,4 @@ public function fields() {
       'node_types' => $this->t('The names of the node types the vocabulary may be used with.'),
     );
   }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function checkRequirements() {
-    return $this->moduleExists('taxonomy');
-  }
-
 }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/VocabularyPerType.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/VocabularyPerType.php
index ed98f93..f03cb25 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/VocabularyPerType.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/VocabularyPerType.php
@@ -7,18 +7,17 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\source\d6;
 
-use Drupal\migrate\Plugin\RequirementsInterface;
-
 use Drupal\migrate\Row;
 
 /**
  * Drupal 6 vocabularies source from database.
  *
  * @MigrateSource(
- *   id = "d6_taxonomy_vocabulary_per_type"
+ *   id = "d6_taxonomy_vocabulary_per_type",
+ *   source_provider = "taxonomy"
  * )
  */
-class VocabularyPerType extends Vocabulary implements RequirementsInterface {
+class VocabularyPerType extends Vocabulary {
 
   /**
    * {@inheritdoc}
@@ -41,5 +40,4 @@ public function getIds() {
     $ids['type']['type'] = 'string';
     return $ids;
   }
-
 }
