diff --git a/libraries.api.php b/libraries.api.php
index 637616f484dbc727111d2303e8025cbbdad11d85..6281a16b4bec68bcb59cf996b5eab0d250445929 100644
--- a/libraries.api.php
+++ b/libraries.api.php
@@ -5,6 +5,71 @@
  * Documents API functions for Libraries module.
  */
 
+/**
+ * @defgroup libraries External libraries
+ * @{
+ * External libraries are not shipped as part of contributed modules for
+ * licensing and maintenance reasons. The Libraries API module aims to solve the
+ * problem of integrating with and loading external libraries as part of the
+ * Drupal request-response process in a generic way.
+ *
+ * @section sec_definitions Library definitions
+ * In order to do be useful to other modules Libraries API needs a list of
+ * known libraries and metadata about each of the libraries. Because multiple
+ * modules or themes may integrate with the same external library a key
+ * objective of Libraries API is to keep this information separate from any one
+ * module or theme.
+ *
+ * @subsection sub_definitions_machine_name
+ * A central part of a library's metadata is the library's machine name or ID.
+ * For maximum interoperability it must consist of only lowercase ASCII letters,
+ * numbers, and underscores. As the machine name is the single identifier of a
+ * library and is independent of any given module or theme name it must be
+ * unique among all libraries known to Libraries API.
+ *
+ * @subsection sub_definitions_history Historical background
+ * In Drupal 7 library information could already be provided by
+ * module-independent info files, but this was not widely used, because there
+ * was no way to distribute these info files properly. The information was
+ * predominantly provided by a hook that modules could implement, which caused
+ * race conditions between modules providing information for the same library.
+ * Thus, in Drupal 8 there is no longer a hook making it necessary to properly
+ * solve the problem of centrally maintaining and distributing library info
+ * files. This has yet to be done.
+ *
+ * @subsection sub_definitions_stream_wrapper
+ * In anticipation of a central repository of library information that will
+ * distribute library definitions as separate files Libraries API provides a
+ * 'library-definitions' stream wrapper. Due to that a library's definition can
+ * be accessed given only it's machine name, for example at
+ * 'library-definitions://example.yml' for a library with the machine name
+ * 'example'. YAML is chosen as the file format because it is used in many parts
+ * of Drupal 8 already. Using a stream wrapper has the benefit of being able to
+ * swap out the specific storage implementation without any other part of the
+ * code needing to change. For example, the specific directory which holds the
+ * library definitions on disk can be changed, multiple directories can be
+ * layered as though they were one, or the library definitions can even be
+ * read from a remote location without any part of the code other than the
+ * stream wrapper implementation itself needing to change.
+ *
+ * By default the library definitions stream wrapper reads from a single
+ * directory that is configurable and points to the 'library-definitions'
+ * directory within the public files directory by default. This makes library
+ * definitions writable by the webserver by default, which is in anticipation of
+ * a user interface that fetches definitions from a remote repository and stores
+ * them locally. For improved security the library definitions can be managed
+ * manually (or put under version control) and placed in a directory that is not
+ * writable by the webserver. The idea of using a stream wrapper for this as
+ * well as the default location is taken from the 'translations' stream wrapper
+ * provided by the Interface Translation module.
+ *
+ * @see \Drupal\libraries\ExternalLibrary\Registry\LibraryRegistryInterface
+ * @see \Drupal\libraries\ExternalLibrary\Registry\LibraryRegistry
+ * @see \Drupal\libraries\StreamWrapper\LibraryDefinitionsStream
+ *
+ * @}
+ */
+
 /**
  * Return information about external libraries.
  *
diff --git a/src/ExternalLibrary/Registry/LibraryRegistry.php b/src/ExternalLibrary/Registry/LibraryRegistry.php
index 0e59eac14a19b2e868bc19ab980b0d79c5241998..5cb7dd2f82c11cdbabdddab1112037a72d8ca58c 100644
--- a/src/ExternalLibrary/Registry/LibraryRegistry.php
+++ b/src/ExternalLibrary/Registry/LibraryRegistry.php
@@ -12,8 +12,6 @@ use Drupal\Component\Serialization\SerializationInterface;
 use Drupal\libraries\ExternalLibrary\Exception\LibraryDefinitionNotFoundException;
 use Drupal\libraries\ExternalLibrary\Exception\LibraryTypeNotFoundException;
 use Drupal\libraries\ExternalLibrary\LibraryType\LibraryCreationListenerInterface;
-use Drupal\libraries\ExternalLibrary\LibraryTypeManagerInterface;
-use Drupal\libraries\ExternalLibrary\Local\LocalLibraryInterface;
 
 /**
  * Provides an implementation of a registry of external libraries.
diff --git a/src/StreamWrapper/LibraryDefinitionsStream.php b/src/StreamWrapper/LibraryDefinitionsStream.php
index da787c8666b343df4c58317e5cbb53770e482f8f..674866031759b802cc0039170d56891c2cc11c0f 100644
--- a/src/StreamWrapper/LibraryDefinitionsStream.php
+++ b/src/StreamWrapper/LibraryDefinitionsStream.php
@@ -13,7 +13,7 @@ use Drupal\Core\StreamWrapper\LocalStream;
  * Provides a stream wrapper for library definitions.
  *
  * Can be used with the 'library-definitions' scheme, for example
- * 'library-definitions://example.json'.
+ * 'library-definitions://example.yml'.
  *
  * @see \Drupal\locale\StreamWrapper\TranslationsStream
  */