diff --git a/modules/ui_patterns_ds/src/Plugin/DsFieldTemplate/Pattern.php b/modules/ui_patterns_ds/src/Plugin/DsFieldTemplate/Pattern.php
index 23e06b8daaa1628a673591dd4043077c761a58c4..3a27578370fc475a6f9fe7139ea96761a2de242f 100644
--- a/modules/ui_patterns_ds/src/Plugin/DsFieldTemplate/Pattern.php
+++ b/modules/ui_patterns_ds/src/Plugin/DsFieldTemplate/Pattern.php
@@ -5,7 +5,7 @@ namespace Drupal\ui_patterns_ds\Plugin\DsFieldTemplate;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\ds\Plugin\DsFieldTemplate\DsFieldTemplateBase;
 use Drupal\ui_patterns\Form\PatternDisplayFormTrait;
-use Drupal\ui_patterns\Plugin\UiPatternsSourceManager;
+use Drupal\ui_patterns\UiPatternsSourceManager;
 use Drupal\ui_patterns\UiPatternsManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpFoundation\RequestStack;
@@ -34,7 +34,7 @@ class Pattern extends DsFieldTemplateBase implements ContainerFactoryPluginInter
   /**
    * UI Patterns manager.
    *
-   * @var \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+   * @var \Drupal\ui_patterns\UiPatternsSourceManager
    */
   protected $sourceManager;
 
@@ -63,7 +63,7 @@ class Pattern extends DsFieldTemplateBase implements ContainerFactoryPluginInter
    *   The plugin implementation definition.
    * @param \Drupal\ui_patterns\UiPatternsManager $patterns_manager
    *    UI Patterns manager.
-   * @param \Drupal\ui_patterns\Plugin\UiPatternsSourceManager $source_manager
+   * @param \Drupal\ui_patterns\UiPatternsSourceManager $source_manager
    *    UI Patterns source manager.
    * @param \Symfony\Component\HttpFoundation\RequestStack $parameters
    *    Current $_POST parameters.
diff --git a/modules/ui_patterns_field_group/src/Plugin/field_group/FieldGroupFormatter/PatternFormatter.php b/modules/ui_patterns_field_group/src/Plugin/field_group/FieldGroupFormatter/PatternFormatter.php
index 828ebc35ae33bdc59980193341fac62c8aaeda48..6bbcbc52dd3a64a3d4553a22cd287c7df0fe8bbf 100644
--- a/modules/ui_patterns_field_group/src/Plugin/field_group/FieldGroupFormatter/PatternFormatter.php
+++ b/modules/ui_patterns_field_group/src/Plugin/field_group/FieldGroupFormatter/PatternFormatter.php
@@ -5,7 +5,7 @@ namespace Drupal\ui_patterns_field_group\Plugin\field_group\FieldGroupFormatter;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\field_group\FieldGroupFormatterBase;
 use Drupal\ui_patterns\Form\PatternDisplayFormTrait;
-use Drupal\ui_patterns\Plugin\UiPatternsSourceManager;
+use Drupal\ui_patterns\UiPatternsSourceManager;
 use Drupal\ui_patterns\UiPatternsManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -35,7 +35,7 @@ class PatternFormatter extends FieldGroupFormatterBase implements ContainerFacto
   /**
    * UI Patterns manager.
    *
-   * @var \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+   * @var \Drupal\ui_patterns\UiPatternsSourceManager
    */
   protected $sourceManager;
 
@@ -50,7 +50,7 @@ class PatternFormatter extends FieldGroupFormatterBase implements ContainerFacto
    *   The plugin implementation definition.
    * @param \Drupal\ui_patterns\UiPatternsManager $patterns_manager
    *    UI Patterns manager.
-   * @param \Drupal\ui_patterns\Plugin\UiPatternsSourceManager $source_manager
+   * @param \Drupal\ui_patterns\UiPatternsSourceManager $source_manager
    *     UI Patterns source manager.
    */
   public function __construct($configuration, $plugin_id, $plugin_definition, UiPatternsManager $patterns_manager, UiPatternsSourceManager $source_manager) {
diff --git a/modules/ui_patterns_library/src/Plugin/Deriver/LibraryDeriver.php b/modules/ui_patterns_library/src/Plugin/Deriver/LibraryDeriver.php
index 03736a0afa06b76cc31c01c21aa500d365ca532a..84cf2a6fca5b73a0dd99527903a252031d354cc6 100644
--- a/modules/ui_patterns_library/src/Plugin/Deriver/LibraryDeriver.php
+++ b/modules/ui_patterns_library/src/Plugin/Deriver/LibraryDeriver.php
@@ -66,6 +66,13 @@ class LibraryDeriver extends AbstractYamlDeriver {
    */
   protected $extensionLocations = [];
 
+  /**
+   * List of valid definition file extensions.
+   *
+   * @var array
+   */
+  protected $fileExtensions = [];
+
   /**
    * Constructor.
    *
@@ -85,7 +92,7 @@ class LibraryDeriver extends AbstractYamlDeriver {
   public function __construct($base_plugin_id, TypedDataManager $typed_data_manager, $root, array $extensions, ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler) {
     parent::__construct($base_plugin_id, $typed_data_manager);
     $this->root = $root;
-    $this->extensions = $extensions;
+    $this->fileExtensions = $extensions;
     $this->moduleHandler = $module_handler;
     $this->themeHandler = $theme_handler;
     $this->extensionDiscovery = new ExtensionDiscovery($root);
@@ -109,7 +116,7 @@ class LibraryDeriver extends AbstractYamlDeriver {
    * {@inheritdoc}
    */
   public function getFileExtensions() {
-    return $this->extensions;
+    return $this->fileExtensions;
   }
 
   /**
diff --git a/modules/ui_patterns_test/src/Form/PatternDisplayTestForm.php b/modules/ui_patterns_test/src/Form/PatternDisplayTestForm.php
index 612f7a61c813a4c41a87da14e0d6773a046848ae..e2f094afc3d7f8152a7bc44f474485b977e5eb91 100644
--- a/modules/ui_patterns_test/src/Form/PatternDisplayTestForm.php
+++ b/modules/ui_patterns_test/src/Form/PatternDisplayTestForm.php
@@ -5,7 +5,7 @@ namespace Drupal\ui_patterns_test\Form;
 use Drupal\Core\Form\FormBase;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\ui_patterns\Form\PatternDisplayFormTrait;
-use Drupal\ui_patterns\Plugin\UiPatternsSourceManager;
+use Drupal\ui_patterns\UiPatternsSourceManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Drupal\ui_patterns\UiPatternsManager;
 
@@ -28,7 +28,7 @@ class PatternDisplayTestForm extends FormBase {
   /**
    * UI Patterns manager.
    *
-   * @var \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+   * @var \Drupal\ui_patterns\UiPatternsSourceManager
    */
   protected $patternsManager;
 
diff --git a/modules/ui_patterns_views/src/Plugin/views/row/Pattern.php b/modules/ui_patterns_views/src/Plugin/views/row/Pattern.php
index 778fcdea05ace0eb5f06ee02c288f2558a52e53a..029330844f3831911fb4d026ec7fe9ea1884493a 100644
--- a/modules/ui_patterns_views/src/Plugin/views/row/Pattern.php
+++ b/modules/ui_patterns_views/src/Plugin/views/row/Pattern.php
@@ -4,7 +4,7 @@ namespace Drupal\ui_patterns_views\Plugin\views\row;
 
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\ui_patterns\Form\PatternDisplayFormTrait;
-use Drupal\ui_patterns\Plugin\UiPatternsSourceManager;
+use Drupal\ui_patterns\UiPatternsSourceManager;
 use Drupal\ui_patterns\UiPatternsManager;
 use Drupal\views\Plugin\views\field\FieldPluginBase;
 use Drupal\views\Plugin\views\row\Fields;
@@ -37,7 +37,7 @@ class Pattern extends Fields {
   /**
    * UI Patterns manager.
    *
-   * @var \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+   * @var \Drupal\ui_patterns\UiPatternsSourceManager
    */
   protected $sourceManager;
 
@@ -52,7 +52,7 @@ class Pattern extends Fields {
    *   The plugin implementation definition.
    * @param \Drupal\ui_patterns\UiPatternsManager $patterns_manager
    *    UI Patterns manager.
-   * @param \Drupal\ui_patterns\Plugin\UiPatternsSourceManager $source_manager
+   * @param \Drupal\ui_patterns\UiPatternsSourceManager $source_manager
    *     UI Patterns source manager.
    */
   public function __construct(array $configuration, $plugin_id, $plugin_definition, UiPatternsManager $patterns_manager, UiPatternsSourceManager $source_manager) {
diff --git a/src/Annotation/UiPatternsSource.php b/src/Annotation/UiPatternsSource.php
index d4aae61492597c1c0cb1fa8e5031fbbcc53892cf..cfbcb053fe2bca4fe3274a6ee4bd913c293a4486 100644
--- a/src/Annotation/UiPatternsSource.php
+++ b/src/Annotation/UiPatternsSource.php
@@ -7,7 +7,7 @@ use Drupal\Component\Annotation\Plugin;
 /**
  * Defines a UI Patterns Source item annotation object.
  *
- * @see \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+ * @see \Drupal\ui_patterns\UiPatternsSourceManager
  * @see plugin_api
  *
  * @Annotation
diff --git a/src/Form/PatternDisplayFormTrait.php b/src/Form/PatternDisplayFormTrait.php
index f4760f81d023062b3893ad39250fa29bfda37cc2..0fa6aa3868e84ab9f98697166f2246ec09d13b75 100644
--- a/src/Form/PatternDisplayFormTrait.php
+++ b/src/Form/PatternDisplayFormTrait.php
@@ -9,7 +9,7 @@ use Drupal\ui_patterns\Plugin\UiPatternsSourceBase;
  * Trait PatternDisplayFormTrait.
  *
  * @property \Drupal\ui_patterns\UiPatternsManager $patternsManager
- * @property \Drupal\ui_patterns\Plugin\UiPatternsSourceManager $sourceManager
+ * @property \Drupal\ui_patterns\UiPatternsSourceManager $sourceManager
  * @method \Drupal\Core\StringTranslation\TranslatableMarkup t($string, array $args = [], array $options = [])
  *
  * @package Drupal\ui_patterns\Form
diff --git a/src/UiPatterns.php b/src/UiPatterns.php
index 5f2323a07c2f119b96f063d6552fb8f4b867a685..501080f39c5ab62461afd31c17c0b8b2a778c749 100644
--- a/src/UiPatterns.php
+++ b/src/UiPatterns.php
@@ -22,7 +22,7 @@ class UiPatterns {
   /**
    * Get pattern field sources manager instance.
    *
-   * @return \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+   * @return \Drupal\ui_patterns\UiPatternsSourceManager
    *    UI Patterns field sources manager instance.
    */
   public static function getSourceManager() {
diff --git a/src/Plugin/UiPatternsSourceManager.php b/src/UiPatternsSourceManager.php
similarity index 82%
rename from src/Plugin/UiPatternsSourceManager.php
rename to src/UiPatternsSourceManager.php
index 1d8acf3ae75a92ff8ba8679cde131206abe675d8..544735b25296b87fbf40eecab08d569b459fea78 100644
--- a/src/Plugin/UiPatternsSourceManager.php
+++ b/src/UiPatternsSourceManager.php
@@ -1,6 +1,6 @@
 <?php
 
-namespace Drupal\ui_patterns\Plugin;
+namespace Drupal\ui_patterns;
 
 use Drupal\Core\Plugin\DefaultPluginManager;
 use Drupal\Core\Cache\CacheBackendInterface;
@@ -18,14 +18,6 @@ class UiPatternsSourceManager extends DefaultPluginManager {
 
   /**
    * Constructor for UiPatternsSourceManager objects.
-   *
-   * @param \Traversable $namespaces
-   *   An object that implements \Traversable which contains the root paths
-   *   keyed by the corresponding namespace to look for plugin implementations.
-   * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
-   *   Cache backend instance to use.
-   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
-   *   The module handler to invoke the alter hook with.
    */
   public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, ModuleHandlerInterface $module_handler) {
     parent::__construct('Plugin/UiPatterns/Source', $namespaces, $module_handler, 'Drupal\ui_patterns\Plugin\UiPatternsSourceInterface', 'Drupal\ui_patterns\Annotation\UiPatternsSource');
diff --git a/tests/src/Kernel/AbstractUiPatternsTest.php b/tests/src/Kernel/AbstractUiPatternsTest.php
index 3d74a6d236e56dbea2e899ba8e8a9fddac0d3a2a..de3d67b7a7784646630dcbf725e6d3169b780aa5 100644
--- a/tests/src/Kernel/AbstractUiPatternsTest.php
+++ b/tests/src/Kernel/AbstractUiPatternsTest.php
@@ -3,10 +3,6 @@
 namespace Drupal\Tests\ui_patterns\Kernel;
 
 use Drupal\KernelTests\KernelTestBase;
-use Drupal\ui_patterns\UiPatterns;
-use Symfony\Component\Finder\Finder;
-use Drupal\Component\Serialization\Yaml;
-use Drupal\ui_patterns\UiPatternsManager;
 
 /**
  * Class AbstractUiPatternsTest.
@@ -25,49 +21,6 @@ abstract class AbstractUiPatternsTest extends KernelTestBase {
     'ui_patterns_test',
   ];
 
-  /**
-   * Get fixture definitions.
-   *
-   * @return array
-   *    List of definitions.
-   */
-  protected function getFixtureDefinitions() {
-    $definitions = [];
-    $finder = new Finder();
-    $finder->name('/\.ui_patterns\.yml$/')->in([realpath(dirname(__FILE__) . '/../fixtures')]);
-    foreach ($finder as $file) {
-      $content = Yaml::decode($file->getContents());
-      foreach ($content as $id => $definition) {
-        $definitions["yaml:$id"] = $definition;
-        $definitions["yaml:$id"]['id'] = $id;
-        $definitions["yaml:$id"]['class'] = '\Drupal\ui_patterns\Plugin\UiPatterns\Pattern\YamlPattern';
-      }
-    }
-    return $definitions;
-  }
-
-  /**
-   * Return plugin manager using given definitions.
-   *
-   * @param array $definitions
-   *    Array of plugin definitions.
-   *
-   * @return \Drupal\ui_patterns\UiPatternsManager
-   *    Plugin manager object.
-   */
-  protected function getPluginManager(array $definitions) {
-    $manager = UiPatterns::getManager();
-    $manager_mock = $this->getMockBuilder(UiPatternsManager::class)
-      ->disableOriginalConstructor()
-      ->setMethods(['findDefinitions'])
-      ->setProxyTarget($manager)
-      ->getMock();
-    $manager_mock->method('findDefinitions')->willReturn($definitions);
-
-    /** @var \Drupal\ui_patterns\UiPatternsManager $manager_mock */
-    return $manager_mock;
-  }
-
   /**
    * Get fixtures base path.
    *
diff --git a/tests/src/Kernel/UiPatternsManagerTest.php b/tests/src/Kernel/UiPatternsManagerTest.php
index 923ac7590f312b760af9738ee61c411273f9e878..fab7d321ea9dd05ff35cf249cc0bbdcce8cec429 100644
--- a/tests/src/Kernel/UiPatternsManagerTest.php
+++ b/tests/src/Kernel/UiPatternsManagerTest.php
@@ -3,9 +3,6 @@
 namespace Drupal\Tests\ui_patterns\Kernel;
 
 use function bovigo\assert\assert;
-use function bovigo\assert\predicate\isNotEmpty;
-use function bovigo\assert\predicate\doesNotHaveKey;
-use function bovigo\assert\predicate\hasKey;
 use function bovigo\assert\predicate\equals;
 use Drupal\ui_patterns\UiPatterns;
 
@@ -16,37 +13,6 @@ use Drupal\ui_patterns\UiPatterns;
  */
 class UiPatternsManagerTest extends AbstractUiPatternsTest {
 
-  /**
-   * Test UiPatternsManager::getDefinitions.
-   *
-   * @covers ::getDefinitions
-   */
-  public function testGetDefinitions() {
-    $manager = $this->getPluginManager($this->getFixtureDefinitions());
-    $definitions = $manager->getDefinitions();
-    assert($definitions, isNotEmpty());
-
-    foreach ($this->getFixtureDefinitions() as $fixture_id => $fixture) {
-      assert($definitions, doesNotHaveKey($fixture_id));
-      assert($definitions, hasKey($fixture['id']));
-    }
-  }
-
-  /**
-   * Test UiPatternsManager::getPatternsOptions.
-   *
-   * @covers ::getPatternsOptions
-   */
-  public function testGetPatternsOptions() {
-    $manager = $this->getPluginManager($this->getFixtureDefinitions());
-    $options = $manager->getPatternsOptions();
-
-    foreach ($this->getFixtureDefinitions() as $fixture) {
-      assert($options, hasKey($fixture['id']));
-      assert($options[$fixture['id']], equals($fixture['label']));
-    }
-  }
-
   /**
    * Test UiPatternsManager::getPattern.
    *
diff --git a/tests/src/Kernel/UiPatternsSourceManagerTest.php b/tests/src/Kernel/UiPatternsSourceManagerTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..8e7108a3b21e33c89b0aad1860450c4c8b649115
--- /dev/null
+++ b/tests/src/Kernel/UiPatternsSourceManagerTest.php
@@ -0,0 +1,45 @@
+<?php
+
+namespace Drupal\Tests\ui_patterns\Kernel;
+
+use function bovigo\assert\assert;
+use function bovigo\assert\predicate\isNotEmpty;
+use function bovigo\assert\predicate\hasKey;
+use function bovigo\assert\predicate\equals;
+
+/**
+ * @coversDefaultClass \Drupal\ui_patterns\UiPatternsSourceManager
+ *
+ * @group ui_patterns
+ */
+class UiPatternsSourceManagerTest extends AbstractUiPatternsTest {
+
+  /**
+   * Test processDefinition.
+   *
+   * @covers ::processDefinition
+   */
+  public function testProcessDefinition() {
+    /** @var \Drupal\ui_patterns\UiPatternsSourceManager $service */
+    $plugin_manager = \Drupal::service('plugin.manager.ui_patterns_source');
+
+    $definitions = $plugin_manager->getDefinitions();
+    assert($definitions, isNotEmpty()->and(hasKey('test_source')));
+
+    $expected = [
+      ['name' => 'field_1', 'label' => 'Field 1'],
+      ['name' => 'field_2', 'label' => 'Field 2'],
+      ['name' => 'field_3', 'label' => 'Field 3'],
+      ['name' => 'field_4', 'label' => 'Field 4'],
+      ['name' => 'field_5', 'label' => 'Field 5'],
+    ];
+
+    /** @var \Drupal\ui_patterns\Plugin\UiPatternsSourceBase $plugin */
+    $plugin = $plugin_manager->createInstance('test_source');
+    foreach ($plugin->getSourceFields() as $key => $field) {
+      assert($field->getFieldName(), equals($expected[$key]['name']));
+      assert($field->getFieldLabel(), equals($expected[$key]['label']));
+    }
+  }
+
+}
diff --git a/tests/src/Unit/AbstractUiPatternsTest.php b/tests/src/Unit/AbstractUiPatternsTest.php
index 1f84b5bb12ad07915337fbc2cf743532cb9b91ea..209bddd21ebd70f0242251c1ef9c845605acc506 100644
--- a/tests/src/Unit/AbstractUiPatternsTest.php
+++ b/tests/src/Unit/AbstractUiPatternsTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\Tests\ui_patterns\Unit;
 
-use Drupal\Component\FileCache\FileCacheFactory;
 use Drupal\Tests\UnitTestCase;
 
 /**
@@ -12,114 +11,6 @@ use Drupal\Tests\UnitTestCase;
  */
 abstract class AbstractUiPatternsTest extends UnitTestCase {
 
-  /**
-   * Get full test extension path.
-   *
-   * @param string $name
-   *    Test extension name.
-   *
-   * @return string
-   *    Full test extension path.
-   */
-  protected function getExtensionsPath($name) {
-    return realpath(dirname(__FILE__) . '/../fixtures/' . $name . '/');
-  }
-
-  /**
-   * Get ModuleHandler mock.
-   *
-   * @return \Drupal\Core\Extension\ModuleHandlerInterface
-   *    ModuleHandler mock.
-   */
-  protected function getModuleHandlerMock() {
-    $module_handler = $this->createMock('Drupal\Core\Extension\ModuleHandlerInterface');
-    $module_handler->method('getModuleDirectories')->willReturn($this->getModuleDirectoriesMock());
-
-    $extension = $this->getExtensionMock();
-    $module_handler->method('getModule')->willReturn($extension);
-    $module_handler->method('moduleExists')->willReturn(TRUE);
-
-    /** @var \Drupal\Core\Extension\ModuleHandlerInterface $module_handler */
-    return $module_handler;
-  }
-
-  /**
-   * Get Extension mock.
-   *
-   * @return \Drupal\Core\Extension\Extension
-   *    Extension mock.
-   */
-  protected function getExtensionMock() {
-    $extension = $this->getMockBuilder('Drupal\Core\Extension\Extension')
-      ->disableOriginalConstructor()
-      ->getMock();
-    $extension->method('getPath')->willReturn($this->getExtensionsPath('module'));
-
-    /** @var \Drupal\Core\Extension\Extension $extension */
-    return $extension;
-  }
-
-  /**
-   * Get CacheBackend mock.
-   *
-   * @return \Drupal\Core\Cache\CacheBackendInterface
-   *    CacheBackend mock.
-   */
-  protected function getCacheBackendMock() {
-    FileCacheFactory::setPrefix('something');
-    $cache_backend = $this->createMock('Drupal\Core\Cache\CacheBackendInterface');
-
-    /** @var \Drupal\Core\Cache\CacheBackendInterface $cache_backend */
-    return $cache_backend;
-  }
-
-  /**
-   * Get ThemeHandler mock.
-   *
-   * @return \Drupal\Core\Extension\ThemeHandlerInterface
-   *    ThemeHandler mock.
-   */
-  protected function getThemeHandlerMock() {
-    $theme_handler = $this->getMockBuilder('Drupal\Core\Extension\ThemeHandlerInterface')
-      ->disableOriginalConstructor()
-      ->getMock();
-    $theme_handler->method('getThemeDirectories')->willReturn($this->getDefaultAndBaseThemesDirectoriesMock());
-    $theme_handler->method('themeExists')->willReturn(TRUE);
-    $theme_handler->method('getDefault')->willReturn('theme');
-    $theme_handler->method('listInfo')->willReturn([]);
-    $theme_handler->method('getBaseThemes')->willReturn([
-      'base_theme' => new \stdClass(),
-    ]);
-
-    /** @var \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler */
-    return $theme_handler;
-  }
-
-  /**
-   * ModuleHandlerInterface::getModuleDirectories method mock.
-   *
-   * @return array
-   *   Array with module names as keys and full paths as values.
-   */
-  protected function getModuleDirectoriesMock() {
-    return [
-      'module' => $this->getExtensionsPath('module'),
-    ];
-  }
-
-  /**
-   * UiPatternsDiscovery::getDefaultAndBaseThemesDirectories method mock.
-   *
-   * @return array
-   *   Array with theme names as keys and full paths as values.
-   */
-  protected function getDefaultAndBaseThemesDirectoriesMock() {
-    return [
-      'theme' => $this->getExtensionsPath('theme'),
-      'base_theme' => $this->getExtensionsPath('base_theme'),
-    ];
-  }
-
   /**
    * Get fixtures base path.
    *
diff --git a/tests/src/Unit/UiPatternsSourceManagerTest.php b/tests/src/Unit/UiPatternsSourceManagerTest.php
deleted file mode 100644
index a668c3e4e47e214c865d2087dbeff4d249c1902e..0000000000000000000000000000000000000000
--- a/tests/src/Unit/UiPatternsSourceManagerTest.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace Drupal\Tests\ui_patterns\Unit;
-
-use function bovigo\assert\assert;
-use function bovigo\assert\predicate\isNotEmpty;
-use function bovigo\assert\predicate\hasKey;
-use Drupal\ui_patterns\Plugin\UiPatternsSourceManager;
-
-/**
- * @coversDefaultClass \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
- *
- * @group ui_patterns
- */
-class UiPatternsSourceManagerTest extends AbstractUiPatternsTest {
-
-  /**
-   * Test processDefinition.
-   *
-   * @covers ::processDefinition
-   */
-  public function testProcessDefinition() {
-    $cache_backend = $this->getCacheBackendMock();
-    $module_handler = $this->getModuleHandlerMock();
-    $path = $this->getExtensionsPath('module') . '/src';
-    $traversable = new \ArrayObject(['Drupal\\module' => $path]);
-    $plugin_manager = new UiPatternsSourceManager($traversable, $cache_backend, $module_handler);
-
-    $definitions = $plugin_manager->getDefinitions();
-    assert($definitions, isNotEmpty()
-      ->and(hasKey('test_one'))
-      ->and(hasKey('test_two'))
-    );
-  }
-
-}
diff --git a/tests/src/fixtures/base_theme/base_theme.info.yml b/tests/src/fixtures/base_theme/base_theme.info.yml
deleted file mode 100644
index 95095cb5c69607aa48a48d216a0c4a278932d2cf..0000000000000000000000000000000000000000
--- a/tests/src/fixtures/base_theme/base_theme.info.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-name: Base theme
-type: theme
-core: 8.x
diff --git a/tests/src/fixtures/base_theme/base_theme.ui_patterns.yml b/tests/src/fixtures/base_theme/base_theme.ui_patterns.yml
deleted file mode 100644
index 48b91d8352966e0e875055e9a6ce18d82ca6b7c2..0000000000000000000000000000000000000000
--- a/tests/src/fixtures/base_theme/base_theme.ui_patterns.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-pattern_base_theme_one:
-  label: Pattern base theme one
-  description: Pattern base theme one description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
-
-pattern_base_theme_two:
-  label: Pattern base theme two
-  description: Pattern base theme two description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
diff --git a/tests/src/fixtures/module/module.info.yml b/tests/src/fixtures/module/module.info.yml
deleted file mode 100644
index 007b569c991c5d3103f39f8c4f40801da4ba5c9b..0000000000000000000000000000000000000000
--- a/tests/src/fixtures/module/module.info.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-name: Module
-type: module
-core: 8.x
diff --git a/tests/src/fixtures/module/module.ui_patterns.yml b/tests/src/fixtures/module/module.ui_patterns.yml
deleted file mode 100644
index 467ad8995ff8582a25fea86bda1011c5ec25686c..0000000000000000000000000000000000000000
--- a/tests/src/fixtures/module/module.ui_patterns.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-pattern_module_one:
-  label: Pattern module one
-  description: Pattern module one description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
-
-pattern_module_two:
-  label: Pattern module two
-  description: Pattern module two description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
diff --git a/tests/src/fixtures/module/src/FieldTemplateProcessor.php b/tests/src/fixtures/module/src/FieldTemplateProcessor.php
deleted file mode 100644
index 2cf64570efdf5754371d43ff3c9cc4f01d14b3ee..0000000000000000000000000000000000000000
--- a/tests/src/fixtures/module/src/FieldTemplateProcessor.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-
-namespace Drupal\ui_patterns_ds;
-
-/**
- * Class FieldTemplateProcessor.
- *
- * @package Drupal\ui_patterns_ds
- */
-class FieldTemplateProcessor implements FieldTemplateProcessorInterface {
-
-  /**
-   * Variables array.
-   *
-   * @var array
-   */
-  protected $variables = [];
-
-  /**
-   * {@inheritdoc}
-   */
-  public function process(&$variables) {
-    $this->variables = $variables;
-
-    $content = [];
-    foreach ($variables['items'] as $delta => $item) {
-      $fields = [];
-      foreach ($this->getMapping() as $mapping) {
-        $fields[$mapping['destination']] = $this->getSourceValue($mapping, $delta);
-      }
-
-      $content['pattern_' . $delta] = [
-        '#type' => 'pattern',
-        '#id' => $this->getPatternId(),
-        '#fields' => $fields,
-        '#context' => $this->getContext(),
-      ];
-    }
-
-    $variables['pattern'] = $content;
-  }
-
-  /**
-   * Get source value.
-   *
-   * @param array $mapping
-   *    Mapping array.
-   * @param int $delta
-   *    Field delta.
-   *
-   * @return mixed
-   *    Source value.
-   */
-  public function getSourceValue(array $mapping, $delta) {
-    $value = $this->variables['items'][$delta]['content'];
-    if ($mapping['source'] != $this->getFieldName()) {
-      $column = $this->getColumnName($mapping['source']);
-      $value = $this->getEntity()->get($this->getFieldName())->getValue();
-      $value = $value[$delta][$column];
-    }
-    return $value;
-  }
-
-  /**
-   * Get field parent entity.
-   *
-   * @return \Drupal\Core\Entity\ContentEntityBase
-   *    Parent entity.
-   */
-  protected function getEntity() {
-    return $this->variables['element']['#object'];
-  }
-
-  /**
-   * Get Pattern ID.
-   *
-   * @return string
-   *    Pattern ID.
-   */
-  protected function getPatternId() {
-    return $this->variables['ds-config']['settings']['pattern'];
-  }
-
-  /**
-   * Get mapping settings.
-   *
-   * @return mixed
-   *    Mapping settings.
-   */
-  protected function getMapping() {
-    return $this->variables['ds-config']['settings']['pattern_mapping'];
-  }
-
-  /**
-   * Get field name.
-   *
-   * @return string
-   *    Field name.
-   */
-  protected function getFieldName() {
-    return $this->variables['field_name'];
-  }
-
-  /**
-   * Extract column name from a source name.
-   *
-   * @param string $source
-   *    Source name.
-   *
-   * @return string
-   *    Column name.
-   */
-  protected function getColumnName($source) {
-    return str_replace($this->getFieldName() . '__', '', $source);
-  }
-
-  /**
-   * Get pattern context.
-   *
-   * @return array
-   *    Pattern context.
-   */
-  protected function getContext() {
-    return [
-      'type' => 'ds_field_template',
-      'field_name' => $this->getFieldName(),
-      'entity_type' => $this->variables['element']['#entity_type'],
-      'bundle' => $this->variables['element']['#bundle'],
-      'view_mode' => $this->variables['element']['#view_mode'],
-    ];
-  }
-
-}
diff --git a/tests/src/fixtures/module/src/FieldTemplateProcessorInterface.php b/tests/src/fixtures/module/src/FieldTemplateProcessorInterface.php
deleted file mode 100644
index 6bc67a4fbc6927b86b0fcc81664a77aed1352c4a..0000000000000000000000000000000000000000
--- a/tests/src/fixtures/module/src/FieldTemplateProcessorInterface.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-
-namespace Drupal\ui_patterns_ds;
-
-/**
- * Interface FieldTemplateProcessorInterface.
- *
- * @package Drupal\ui_patterns_ds
- */
-interface FieldTemplateProcessorInterface {
-
-  /**
-   * Process field template variables.
-   *
-   * @param array $variables
-   *    Variables array.
-   *
-   * @see template_preprocess_field__pattern_ds_field_template()
-   */
-  public function process(&$variables);
-
-}
diff --git a/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestOneFieldSource.php b/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestOneFieldSource.php
deleted file mode 100644
index 2d783cfa9cfbdaab66328dac55c97d910af0e543..0000000000000000000000000000000000000000
--- a/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestOneFieldSource.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Drupal\module\Plugin\UiPatterns\Source;
-
-use Drupal\ui_patterns\Plugin\UiPatternsSourceBase;
-
-/**
- * Test one.
- *
- * @UiPatternsSource(
- *   id = "test_one",
- *   label = @Translation("Test one"),
- *   provider = "module",
- *   tags = {
- *     "test"
- *   }
- * )
- */
-class TestOneFieldSource extends UiPatternsSourceBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getSourceFields() {
-    return [
-      $this->getSourceField('test_one', 'Test one'),
-    ];
-  }
-
-}
diff --git a/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestTwoFieldSource.php b/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestTwoFieldSource.php
deleted file mode 100644
index c9743d0080c740726978c4d954e2664f33d1026c..0000000000000000000000000000000000000000
--- a/tests/src/fixtures/module/src/Plugin/UiPatterns/Source/TestTwoFieldSource.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace Drupal\module\Plugin\UiPatterns\Source;
-
-use Drupal\ui_patterns\Plugin\UiPatternsSourceBase;
-
-/**
- * Test two.
- *
- * @UiPatternsSource(
- *   id = "test_two",
- *   label = @Translation("Test two"),
- *   provider = "module",
- *   tags = {
- *     "test"
- *   }
- * )
- */
-class TestTwoFieldSource extends UiPatternsSourceBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function getSourceFields() {
-    return [
-      $this->getSourceField('test_two', 'Test two'),
-    ];
-  }
-
-}
diff --git a/tests/src/fixtures/theme/pattern/pattern.ui_patterns.yml b/tests/src/fixtures/theme/pattern/pattern.ui_patterns.yml
deleted file mode 100644
index 40298c932eeb5db45261796763306dcfb22542f2..0000000000000000000000000000000000000000
--- a/tests/src/fixtures/theme/pattern/pattern.ui_patterns.yml
+++ /dev/null
@@ -1,29 +0,0 @@
-pattern_pattern_one:
-  label: Pattern pattern one
-  description: Pattern pattern one description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
-  libraries:
-    - theme/library_one
-    - theme/library_two
-    - library_one:
-        css:
-           component:
-             library_one.css: {}
-        js:
-         library_one.js: {}
-    - library_two:
-        css:
-           component:
-             library_one.css: {}
-        js:
-         library_two.js: {}
diff --git a/tests/src/fixtures/theme/theme.info.yml b/tests/src/fixtures/theme/theme.info.yml
deleted file mode 100644
index d6b1e40a7c86c410814a795a15bf8aa81d01ab33..0000000000000000000000000000000000000000
--- a/tests/src/fixtures/theme/theme.info.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-name: Theme
-type: theme
-base theme: base_theme
-core: 8.x
diff --git a/tests/src/fixtures/theme/theme.ui_patterns.yml b/tests/src/fixtures/theme/theme.ui_patterns.yml
deleted file mode 100644
index ad5c7ebb9bd2f12b63ee5a1f45b05dbae77e6f79..0000000000000000000000000000000000000000
--- a/tests/src/fixtures/theme/theme.ui_patterns.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-pattern_theme_one:
-  label: Pattern theme one
-  description: Pattern theme one description.
-  fields:
-    field_one:
-      type: text
-      label: Field one
-      description: Field one description.
-      preview: Field one preview.
-    field_two:
-      type: text
-      label: Field two
-      description: Field two description.
-      preview: Field two preview.
diff --git a/ui_patterns.api.php b/ui_patterns.api.php
index 96504c317179db8edacc6d778579bcfde57a66e9..e56ba0f47d74de52dd690945fa01d49e6464654d 100644
--- a/ui_patterns.api.php
+++ b/ui_patterns.api.php
@@ -14,7 +14,7 @@ function hook_ui_patterns_info_alter(&$definitions) {
 /**
  * Alter UI Patterns Source definitions.
  *
- * @see \Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+ * @see \Drupal\ui_patterns\UiPatternsSourceManager
  */
 function hook_ui_patterns_ui_patterns_source_info_alter(&$definitions) {
   $definitions['my_field_source']['tags'][] = 'new_tag';
diff --git a/ui_patterns.services.yml b/ui_patterns.services.yml
index eee75f4cd1655996a6bc14f7e4443cb277ff8981..cb420c61c42583c1994017176d810956e6f8dd94 100644
--- a/ui_patterns.services.yml
+++ b/ui_patterns.services.yml
@@ -3,7 +3,7 @@ services:
     class: Drupal\ui_patterns\UiPatternsManager
     arguments: ['@container.namespaces', '@module_handler', '@theme_handler', '@cache.discovery']
   plugin.manager.ui_patterns_source:
-    class: Drupal\ui_patterns\Plugin\UiPatternsSourceManager
+    class: Drupal\ui_patterns\UiPatternsSourceManager
     parent: default_plugin_manager
   ui_patterns.twig.extension:
     class: Drupal\ui_patterns\Template\TwigExtension