diff --git a/src/Entity/Form/Oauth2TokenSettingsForm.php b/src/Entity/Form/Oauth2TokenSettingsForm.php
index 4370c92..82f1984 100644
--- a/src/Entity/Form/Oauth2TokenSettingsForm.php
+++ b/src/Entity/Form/Oauth2TokenSettingsForm.php
@@ -7,7 +7,7 @@ use Drupal\Core\Form\ConfigFormBase;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Messenger\MessengerInterface;
 use Drupal\Core\Url;
-use Drupal\simple_oauth\Service\Filesystem\FilesystemInterface;
+use Drupal\simple_oauth\Service\Filesystem\Filesystem;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -16,7 +16,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
 class Oauth2TokenSettingsForm extends ConfigFormBase {
 
   /**
-   * @var \Drupal\simple_oauth\Service\Filesystem\FilesystemInterface
+   * @var \Drupal\simple_oauth\Service\Filesystem\Filesystem
    */
   protected $fileSystem;
 
@@ -33,19 +33,19 @@ class Oauth2TokenSettingsForm extends ConfigFormBase {
    *
    * @param \Drupal\Core\Config\ConfigFactoryInterface $configFactory
    *   The factory for configuration objects.
-   * @param \Drupal\simple_oauth\Service\Filesystem\FilesystemInterface $fileSystem
+   * @param \Drupal\simple_oauth\Service\Filesystem\Filesystem $fileSystem
    *   The simple_oauth.filesystem service.
    * @param \Drupal\Core\Messenger\MessengerInterface $messenger
    *   The messenger service.
    */
-  public function __construct(ConfigFactoryInterface $configFactory, FilesystemInterface $fileSystem, MessengerInterface $messenger) {
+  public function __construct(ConfigFactoryInterface $configFactory, Filesystem $fileSystem, MessengerInterface $messenger) {
     parent::__construct($configFactory);
     $this->fileSystem = $fileSystem;
     $this->messenger = $messenger;
   }
 
   /**
-   *
+   * {@inheritdoc}
    */
   public static function create(ContainerInterface $container) {
     return new static(
diff --git a/src/Service/Filesystem/Filesystem.php b/src/Service/Filesystem/Filesystem.php
index 1b884ea..d1cd42e 100755
--- a/src/Service/Filesystem/Filesystem.php
+++ b/src/Service/Filesystem/Filesystem.php
@@ -2,12 +2,12 @@
 
 namespace Drupal\simple_oauth\Service\Filesystem;
 
-use Drupal\Core\File\FileSystemInterface as CoreFileSystemInterface;
+use Drupal\Core\File\FileSystemInterface;
 
 /**
  * @internal
  */
-class Filesystem implements FilesystemInterface {
+class Filesystem {
 
   /**
    * @var \Drupal\Core\File\FileSystem
@@ -17,9 +17,9 @@ class Filesystem implements FilesystemInterface {
   /**
    * Filesystem constructor.
    *
-   * @param \Drupal\Core\File\FileSystem $file_system
+   * @param \Drupal\Core\File\FileSystemInterface $file_system
    */
-  public function __construct(CoreFileSystemInterface $file_system) {
+  public function __construct(FileSystemInterface $file_system) {
     $this->fileSystem = $file_system;
   }
 
@@ -66,80 +66,20 @@ class Filesystem implements FilesystemInterface {
   }
 
   /**
-   * {@inheritdoc}
-   */
-  public function moveUploadedFile($filename, $uri) {
-    return $this->fileSystem->moveUploadedFile($filename, $uri);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function chmod($uri, $mode = NULL) {
-    return $this->fileSystem->chmod($uri, $mode);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function unlink($uri, $context = NULL) {
-    return $this->fileSystem->unlink($uri, $context);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function realpath($uri) {
-    return $this->fileSystem->realpath($uri);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function dirname($uri) {
-    return $this->fileSystem->dirname($uri);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function basename($uri, $suffix = NULL) {
-    return $this->fileSystem->basename($uri, $suffix);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function mkdir($uri, $mode = NULL, $recursive = FALSE, $context = NULL) {
-    return $this->fileSystem->mkdir($uri, $mode, $recursive, $context);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function rmdir($uri, $context = NULL) {
-    return $this->fileSystem->rmdir($uri, $context);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function tempnam($directory, $prefix) {
-    return $this->fileSystem->tempnam($directory, $prefix);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function uriScheme($uri) {
-    return $this->fileSystem->uriScheme($uri);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function validScheme($scheme) {
-    return $this->fileSystem->validScheme($scheme);
+   * Magic __call method.
+   *
+   * Defers all the missing methods to the decorated service.
+   *
+   * @param string $name
+   *   The name of the missing method.
+   * @param array $arguments
+   *   The list of arguments.
+   */
+  public function __call($name, $arguments) {
+    if (method_exists($this->fileSystem, $name)) {
+      call_user_func_array([$this->fileSystem, $name], $arguments);
+    }
+    throw new \RuntimeException('Unable to find method: ' . $name);
   }
 
 }
diff --git a/src/Service/KeyGeneratorService.php b/src/Service/KeyGeneratorService.php
index 79cb2e0..de6f96e 100755
--- a/src/Service/KeyGeneratorService.php
+++ b/src/Service/KeyGeneratorService.php
@@ -2,7 +2,7 @@
 
 namespace Drupal\simple_oauth\Service;
 
-use Drupal\simple_oauth\Service\Filesystem\FilesystemInterface;
+use Drupal\simple_oauth\Service\Filesystem\Filesystem;
 use Drupal\simple_oauth\Service\Filesystem\FilesystemValidator;
 
 /**
@@ -23,9 +23,9 @@ class KeyGeneratorService {
   /**
    * CertificateGeneratorService constructor.
    *
-   * @param \Drupal\simple_oauth\Service\Filesystem\FilesystemInterface $file_system
+   * @param \Drupal\simple_oauth\Service\Filesystem\Filesystem $file_system
    */
-  public function __construct(FilesystemInterface $file_system) {
+  public function __construct(Filesystem $file_system) {
     $this->fileSystem = $file_system;
     $this->validator = new FilesystemValidator($file_system);
   }
@@ -39,6 +39,9 @@ class KeyGeneratorService {
    *   Private key path.
    *
    * @return void
+   *
+   * @throws \Drupal\simple_oauth\Service\Exception\ExtensionNotLoadedException
+   * @throws \Drupal\simple_oauth\Service\Exception\FilesystemValidationException
    */
   public function generateKeys($dir_path) {
     // Create path array.
