diff --git a/src/Plugin/Condition/Term.php b/src/Plugin/Condition/Term.php
index 1935a69..b89e76d 100644
--- a/src/Plugin/Condition/Term.php
+++ b/src/Plugin/Condition/Term.php
@@ -9,7 +9,9 @@ namespace Drupal\term_condition\Plugin\Condition;
 
 use Drupal\Core\Condition\ConditionPluginBase;
 use Drupal\Core\Form\FormStateInterface;
-use Drupal\Core\Plugin\Context\ContextDefinition;
+use Drupal\Core\Entity\EntityStorageInterface;
+use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
 * Provides a 'Term' condition to enable a condition based in module selected status.
@@ -23,22 +25,20 @@ use Drupal\Core\Plugin\Context\ContextDefinition;
 * )
 *
 */
-class Term extends ConditionPluginBase {
+class Term extends ConditionPluginBase implements ContainerFactoryPluginInterface {
+
   /**
-   * {@inheritdoc}
+   * The entity storage.
+   *
+   * @var \Drupal\Core\Entity\EntityStorageInterface
    */
-  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition)
-  {
-    return new static(
-      $configuration,
-      $plugin_id,
-      $plugin_definition
-    );
-  }
+  protected $entityStorage;
 
   /**
    * Creates a new ExampleCondition instance.
    *
+   * @param EntityStorageInterface $entity_storage
+   *   The entity storage.
    * @param array $configuration
    *   The plugin configuration, i.e. an array with configuration values keyed
    *   by configuration option name. The special key 'context' may be used to
@@ -49,19 +49,52 @@ class Term extends ConditionPluginBase {
    * @param mixed $plugin_definition
    *   The plugin implementation definition.
    */
-  public function __construct(array $configuration, $plugin_id, $plugin_definition) {
+  public function __construct(EntityStorageInterface $entity_storage, array $configuration, $plugin_id, $plugin_definition) {
     parent::__construct($configuration, $plugin_id, $plugin_definition);
+    $this->entityStorage = $entity_storage;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition)
+  {
+    return new static(
+      $container->get('entity.manager')->getStorage('taxonomy_term'),
+      $configuration,
+      $plugin_id,
+      $plugin_definition
+    );
   }
 
   /**
    * {@inheritdoc}
    */
   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
+    $default_terms = [];
+
+    if(!empty($this->configuration['tid'])) {
+      // Load the existing term(s) for the block.
+      $terms = $this->configuration['tid'];
+      if (!empty($terms)) {
+        if (is_array($terms)) {
+          foreach ($terms as $key => $term) {
+            $term = array_pop($term);
+            $default_terms[] = $this->entityStorage->load($term);
+          }
+        }
+        else {
+          $default_terms = $this->entityStorage->load($terms);
+        }
+      }
+    }
+
     $form['tid'] = array(
       '#type' => 'entity_autocomplete',
-      '#title' => $this->t('Select a taxonomy term'),
-      '#default_value' => $this->configuration['tid'],
+      '#title' => $this->t('Select taxonomy term(s)'),
+      '#default_value' => $default_terms,
       '#target_type' => 'taxonomy_term',
+      '#tags' => TRUE,
     );
 
     return parent::buildConfigurationForm($form, $form_state);
@@ -86,12 +119,31 @@ class Term extends ConditionPluginBase {
       return TRUE;
     }
 
+    // If configuration['tid'] is an array, there is multiple terms set.
+    if(is_array($this->configuration['tid'])) {
+      $tids = $this->configuration['tid'];
+      unset($this->configuration['tid']);
+      foreach ($tids as $tid) {
+        $this->configuration['tid'][] = array_pop($tid);
+      }
+    }
+
     $node = $this->getContextValue('node');
 
     foreach ($node->referencedEntities() as $referenced_entity) {
-      if ($referenced_entity->getEntityTypeId() == 'taxonomy_term'
-        && $referenced_entity->id() == $this->configuration['tid']) {
-        return TRUE;
+      // If configuration['tid'] is an array with multiple terms, check all
+      // tids in the array against the term.
+      if(is_array($this->configuration['tid'])) {
+        if ($referenced_entity->getEntityTypeId() == 'taxonomy_term'
+          && in_array($referenced_entity->id(), $this->configuration['tid'])) {
+          return TRUE;
+        }
+      }
+      else {
+        if ($referenced_entity->getEntityTypeId() == 'taxonomy_term'
+          && $referenced_entity->id() == $this->configuration['tid']) {
+          return TRUE;
+        }
       }
     }
 
