diff --git a/src/Feeds/Processor/EntityProcessorBase.php b/src/Feeds/Processor/EntityProcessorBase.php
index 5e16dde..0b7a8b9 100644
--- a/src/Feeds/Processor/EntityProcessorBase.php
+++ b/src/Feeds/Processor/EntityProcessorBase.php
@@ -683,7 +683,12 @@ abstract class EntityProcessorBase extends ProcessorBase implements EntityProces
           $source_values[$target][$column] = [];
         }
 
-        $value = $item->get($source);
+        if ($plugin = $feed->getType()->getSourcePlugin($source)) {
+          $value = $plugin->getSourceElement($feed, $item, $source);
+        }
+        else {
+          $value = $item->get($source);
+        }
         if (!is_array($value)) {
           $source_values[$target][$column][] = $value;
         }
diff --git a/src/Feeds/Source/BasicFieldSource.php b/src/Feeds/Source/BasicFieldSource.php
index dade9bd..bfa4456 100644
--- a/src/Feeds/Source/BasicFieldSource.php
+++ b/src/Feeds/Source/BasicFieldSource.php
@@ -3,6 +3,7 @@
 namespace Drupal\feeds\Feeds\Source;
 
 use Drupal\feeds\FeedInterface;
+use Drupal\feeds\Feeds\Item\ItemInterface;
 use Drupal\feeds\FeedTypeInterface;
 use Drupal\feeds\Plugin\Type\PluginBase;
 use Drupal\feeds\Plugin\Type\Source\SourceInterface;
@@ -34,14 +35,14 @@ class BasicFieldSource extends PluginBase implements SourceInterface {
    * {@inheritdoc}
    */
   public static function sources(array &$sources, FeedTypeInterface $feed_type, array $definition) {
-    // $field_definitions = \Drupal::service('entity_field.manager')->getFieldDefinitions('feeds_feed', $feed_type->id());
-    // foreach ($field_definitions as $field => $field_definition) {
-    //   if (in_array($field_definition['type'], $definition['field_types'])) {
-    //     $field_definition['label'] = t('Feed: @label', ['@label' => $field_definition['label']]);
-    //     $sources['parent:' . $field] = $field_definition;
-    //     $sources['parent:' . $field]['id'] = $definition['id'];
-    //   }
-    // }
+    $field_definitions = \Drupal::service('entity_field.manager')->getFieldDefinitions('feeds_feed', $feed_type->id());
+    foreach ($field_definitions as $field => $field_definition) {
+      if (in_array($field_definition['type'], $definition['field_types'])) {
+        $field_definition['label'] = t('Feed: @label', ['@label' => $field_definition['label']]);
+        $sources['parent:' . $field] = $field_definition;
+        $sources['parent:' . $field]['id'] = $definition['id'];
+      }
+    }
   }
 
   /**
@@ -50,7 +51,7 @@ class BasicFieldSource extends PluginBase implements SourceInterface {
    * @todo I guess we could cache this since the value will be the same for
    *   $element_key/$feed id combo.
    */
-  public function getSourceElement(FeedInterface $feed, array $item, $element_key) {
+  public function getSourceElement(FeedInterface $feed, ItemInterface $item, $element_key) {
     list(, $field) = explode(':', $element_key);
     $return = [];
 
diff --git a/src/Plugin/Type/Source/SourceInterface.php b/src/Plugin/Type/Source/SourceInterface.php
index 9b2c43b..6aa41dd 100644
--- a/src/Plugin/Type/Source/SourceInterface.php
+++ b/src/Plugin/Type/Source/SourceInterface.php
@@ -3,6 +3,7 @@
 namespace Drupal\feeds\Plugin\Type\Source;
 
 use Drupal\feeds\FeedInterface;
+use Drupal\feeds\Feeds\Item\ItemInterface;
 use Drupal\feeds\FeedTypeInterface;
 use Drupal\feeds\Plugin\Type\FeedsPluginInterface;
 
@@ -34,6 +35,6 @@ interface SourceInterface extends FeedsPluginInterface {
    * @return array
    *   A list of scalar field values.
    */
-  public function getSourceElement(FeedInterface $feed, array $item, $element_key);
+  public function getSourceElement(FeedInterface $feed, ItemInterface $item, $element_key);
 
 }
