diff --git a/src/Plugin/search_api/processor/FilesExtrator.php b/src/Plugin/search_api/processor/FilesExtrator.php
index e3d2b76..8b0563b 100644
--- a/src/Plugin/search_api/processor/FilesExtrator.php
+++ b/src/Plugin/search_api/processor/FilesExtrator.php
@@ -18,6 +18,8 @@
 use Drupal\search_api\Processor\ProcessorProperty;
 use Drupal\file\Entity\File;
 use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface;
+use Drupal\Core\Plugin\PluginFormInterface;
+use Drupal\search_api\Plugin\PluginFormTrait;

 /**
  * Provides file fields processor.
@@ -31,7 +33,8 @@
  *   }
  * )
  */
-class FilesExtrator extends ProcessorPluginBase {
+class FilesExtrator extends ProcessorPluginBase implements PluginFormInterface {
+  use PluginFormTrait;

   /**
    * Name of the config being edited.
@@ -386,7 +389,6 @@ protected function getFileFieldsAndFileEntityItems() {
    * {@inheritdoc}
    */
   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
-    $form = parent::buildConfigurationForm($form, $form_state);
     if (isset($this->configuration['excluded_extensions'])) {
       $default_excluded_extensions = $this->configuration['excluded_extensions'];
     }
@@ -430,7 +432,6 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
    * {@inheritdoc}
    */
   public function validateConfigurationForm(array &$form, FormStateInterface $form_state) {
-    parent::validateConfigurationForm($form, $form_state);
     $max_filesize = trim($form_state->getValue('max_filesize'));
     if ($max_filesize != '0') {
       $size_info = explode(' ', $max_filesize);
@@ -449,18 +450,6 @@ public function validateConfigurationForm(array &$form, FormStateInterface $form
   }

   /**
-   * {@inheritdoc}
-   */
-  public function submitConfigurationForm(array &$form, FormStateInterface $form_state) {
-    parent::submitConfigurationForm($form, $form_state);
-    $excluded_extensions = $form_state->getValue('excluded_extensions');
-    $excluded_extensions_array = explode(' ', $excluded_extensions);
-    $excluded_mimes_array = $this->getExcludedMimes($excluded_extensions_array);
-    $excluded_mimes_string = implode(' ', $excluded_mimes_array);
-    $this->setConfiguration($this->getConfiguration() + array('excluded_mimes' => $excluded_mimes_string));
-  }
-
-  /**
    * Default excluded extensions.
    *
    * @return string
@@ -508,7 +497,8 @@ public function getExcludedMimes($extensions = NULL) {
     else {

       if (!$extensions) {
-        $extensions = $this->defaultExcludedExtensions();
+        // Method defaultExcludedExtensions returns concatanated string.
+        $extensions = explode(' ', $this->defaultExcludedExtensions());
       }
       $excluded_mimes = array();
       foreach ($extensions as $extension) {
