diff --git a/src/Plugin/search_api/processor/FilesExtrator.php b/src/Plugin/search_api/processor/FilesExtrator.php
index 8b39a14..52b3113 100644
--- a/src/Plugin/search_api/processor/FilesExtrator.php
+++ b/src/Plugin/search_api/processor/FilesExtrator.php
@@ -18,6 +18,8 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
 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 @@ use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface;
  *   }
  * )
  */
-class FilesExtrator extends ProcessorPluginBase {
+class FilesExtrator extends ProcessorPluginBase implements PluginFormInterface {
+  use PluginFormTrait;
 
   /**
    * Name of the config being edited.
@@ -377,7 +380,6 @@ class FilesExtrator extends ProcessorPluginBase {
    * {@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'];
     }
@@ -421,7 +423,6 @@ class FilesExtrator extends ProcessorPluginBase {
    * {@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);
@@ -440,18 +441,6 @@ class FilesExtrator extends ProcessorPluginBase {
   }
 
   /**
-   * {@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() + ['excluded_mimes' => $excluded_mimes_string]);
-  }
-
-  /**
    * Default excluded extensions.
    *
    * @return string
@@ -499,7 +488,8 @@ class FilesExtrator extends ProcessorPluginBase {
     else {
 
       if (!$extensions) {
-        $extensions = $this->defaultExcludedExtensions();
+        // Method defaultExcludedExtensions returns concatanated string.
+        $extensions = explode(' ', $this->defaultExcludedExtensions());
       }
       $excluded_mimes = [];
       foreach ($extensions as $extension) {
