diff --git a/core/core.services.yml b/core/core.services.yml
index 0fca40a..6cb56a7 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -473,13 +473,13 @@ services:
     class: Drupal\Core\Ajax\AjaxSubscriber
     tags:
       - { name: event_subscriber }
-  image.toolkit.manager:
-    class: Drupal\system\Plugin\ImageToolkitManager
-    arguments: ['@container.namespaces', '@cache.cache', '@language_manager']
+  plugin.manager.image_toolkit:
+    class: Drupal\Core\ImageToolkit\ImageToolkitManager
+    arguments: ['@container.namespaces', '@cache.cache', '@language_manager', '@config.factory']
   image.toolkit:
-    class: Drupal\system\Plugin\ImageToolkitInterface
+    class: Drupal\Core\ImageToolkit\ImageToolkitInterface
     factory_method: getDefaultToolkit
-    factory_service: image.toolkit.manager
+    factory_service: plugin.manager.image_toolkit
   breadcrumb:
     class: Drupal\Core\Breadcrumb\BreadcrumbManager
   token:
diff --git a/core/includes/image.inc b/core/includes/image.inc
index 9e2d06f..6abafbe 100644
--- a/core/includes/image.inc
+++ b/core/includes/image.inc
@@ -5,7 +5,7 @@
  * API for manipulating images.
  */
 
-use Drupal\system\Plugin\ImageToolkitInterface;
+use Drupal\Core\ImageToolkit\ImageToolkitInterface;
 use Drupal\Component\Image\Image;
 
 /**
@@ -44,7 +44,7 @@
  *
  * @param string $filepath
  *   String specifying the path of the image file.
- * @param \Drupal\system\Plugin\ImageToolkitInterface $toolkit
+ * @param \Drupal\Core\ImageToolkit\ImageToolkitInterface $toolkit
  *   (optional) An image toolkit object to override the default.
  *
  * @return array
@@ -261,7 +261,7 @@ function image_desaturate($image) {
  *
  * @param string $file
  *   Path to an image file.
- * @param \Drupal\system\Plugin\ImageToolkitInterface $toolkit
+ * @param \Drupal\Core\ImageToolkit\ImageToolkitInterface $toolkit
  *   (optional) Image toolkit object to override the default.
  *
  * @return object
diff --git a/core/modules/system/lib/Drupal/system/Plugin/ImageToolkitInterface.php b/core/lib/Drupal/Core/ImageToolkit/ImageToolkitInterface.php
similarity index 97%
rename from core/modules/system/lib/Drupal/system/Plugin/ImageToolkitInterface.php
rename to core/lib/Drupal/Core/ImageToolkit/ImageToolkitInterface.php
index 0b22f3c..ec39e44 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/ImageToolkitInterface.php
+++ b/core/lib/Drupal/Core/ImageToolkit/ImageToolkitInterface.php
@@ -2,10 +2,10 @@
 
 /**
  * @file
- * Contains \Drupal\system\Plugin\ImageToolkitInterface.
+ * Contains \Drupal\Core\ImageToolkit\ImageToolkitInterface.
  */
 
-namespace Drupal\system\Plugin;
+namespace Drupal\Core\ImageToolkit;
 
 /**
  * Defines an interface for image toolkits.
diff --git a/core/modules/system/lib/Drupal/system/Plugin/ImageToolkitManager.php b/core/lib/Drupal/Core/ImageToolkit/ImageToolkitManager.php
similarity index 77%
rename from core/modules/system/lib/Drupal/system/Plugin/ImageToolkitManager.php
rename to core/lib/Drupal/Core/ImageToolkit/ImageToolkitManager.php
index ddad9c6..d766a1a 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/ImageToolkitManager.php
+++ b/core/lib/Drupal/Core/ImageToolkit/ImageToolkitManager.php
@@ -2,12 +2,13 @@
 
 /**
  * @file
- * Contains \Drupal\system\Plugin\ImageToolkitManager.
+ * Contains \Drupal\Core\ImageToolkit\ImageToolkitManager.
  */
 
-namespace Drupal\system\Plugin;
+namespace Drupal\Core\ImageToolkit;
 
 use Drupal\Core\Cache\CacheBackendInterface;
+use Drupal\Core\Config\ConfigFactory;
 use Drupal\Core\Language\LanguageManager;
 use Drupal\Core\Plugin\DefaultPluginManager;
 
@@ -17,6 +18,13 @@
 class ImageToolkitManager extends DefaultPluginManager {
 
   /**
+   * The config factory.
+   *
+   * @var \Drupal\Core\Config\ConfigFactory
+   */
+  protected $configFactory;
+
+  /**
    * Constructs the ImageToolkitManager object.
    *
    * @param \Traversable $namespaces
@@ -26,24 +34,24 @@ class ImageToolkitManager extends DefaultPluginManager {
    *   Cache backend instance to use.
    * @param \Drupal\Core\Language\LanguageManager $language_manager
    *   The language manager.
+   * @param \Drupal\Core\Config\ConfigFactory $config_factory
+   *   The config factory.
    */
-  public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, LanguageManager $language_manager) {
+  public function __construct(\Traversable $namespaces, CacheBackendInterface $cache_backend, LanguageManager $language_manager, ConfigFactory $config_factory) {
     parent::__construct('ImageToolkit', $namespaces);
+
     $this->setCacheBackend($cache_backend, $language_manager, 'image_toolkit');
+    $this->configFactory = $config_factory;
   }
 
   /**
    * Gets the default image toolkit.
    *
-   * @param string $toolkit_id
-   *   (optional) String specifying toolkit to load. NULL will load the default
-   *   toolkit.
-   *
-   * @return \Drupal\system\Plugin\ImageToolkitInterface
+   * @return \Drupal\Core\ImageToolkit\ImageToolkitInterface
    *   Object of the default toolkit, or FALSE on error.
    */
   public function getDefaultToolkit() {
-    $toolkit_id = config('system.image')->get('toolkit');
+    $toolkit_id = $this->configFactory->get('system.image')->get('toolkit');
     $toolkits = $this->getAvailableToolkits();
 
     if (!isset($toolkits[$toolkit_id]) || !class_exists($toolkits[$toolkit_id]['class'])) {
diff --git a/core/modules/system/lib/Drupal/system/Form/ImageToolkitForm.php b/core/modules/system/lib/Drupal/system/Form/ImageToolkitForm.php
index 100553c..d815b61 100644
--- a/core/modules/system/lib/Drupal/system/Form/ImageToolkitForm.php
+++ b/core/modules/system/lib/Drupal/system/Form/ImageToolkitForm.php
@@ -10,7 +10,7 @@
 use Drupal\Core\Config\ConfigFactory;
 use Drupal\Core\Config\Context\ContextInterface;
 use Drupal\system\SystemConfigFormBase;
-use Drupal\system\Plugin\ImageToolkitManager;
+use Drupal\Core\ImageToolkit\ImageToolkitManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -32,7 +32,7 @@ class ImageToolkitForm extends SystemConfigFormBase {
    *   The factory for configuration objects.
    * @param \Drupal\Core\Config\Context\ContextInterface $context
    *   The configuration context used for this configuration object.
-   * @param \Drupal\system\Plugin\ImageToolkitManager $manager
+   * @param \Drupal\Core\ImageToolkit\ImageToolkitManager $manager
    *   The image toolkit plugin manager.
    */
   public function __construct(ConfigFactory $config_factory, ContextInterface $context, ImageToolkitManager $manager) {
@@ -50,7 +50,7 @@ public static function create(ContainerInterface $container) {
     return new static(
       $container->get('config.factory'),
       $container->get('config.context.free'),
-      $container->get('image.toolkit.manager')
+      $container->get('plugin.manager.image_toolkit')
     );
   }
 
diff --git a/core/modules/system/lib/Drupal/system/Plugin/ImageToolkit/GDToolkit.php b/core/modules/system/lib/Drupal/system/Plugin/ImageToolkit/GDToolkit.php
index 06cb4a6..673265a 100644
--- a/core/modules/system/lib/Drupal/system/Plugin/ImageToolkit/GDToolkit.php
+++ b/core/modules/system/lib/Drupal/system/Plugin/ImageToolkit/GDToolkit.php
@@ -10,7 +10,7 @@
 use Drupal\Component\Plugin\PluginBase;
 use Drupal\Component\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
-use Drupal\system\Plugin\ImageToolkitInterface;
+use Drupal\Core\ImageToolkit\ImageToolkitInterface;
 
 /**
  * Defines the GD2 toolkit for image manipulation within Drupal.
@@ -23,7 +23,7 @@
 class GDToolkit extends PluginBase implements ImageToolkitInterface {
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::settingsForm().
+   * {@inheritdoc}
    */
   public function settingsForm() {
     $form['image_jpeg_quality'] = array(
@@ -39,7 +39,7 @@ public function settingsForm() {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::settingsFormSubmit().
+   * {@inheritdoc}
    */
   public function settingsFormSubmit($form, &$form_state) {
     config('system.image.gd')
@@ -48,7 +48,7 @@ public function settingsFormSubmit($form, &$form_state) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::resize().
+   * {@inheritdoc}
    */
   public function resize($image, $width, $height) {
     $res = $this->createTmp($image, $width, $height);
@@ -66,7 +66,7 @@ public function resize($image, $width, $height) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::rotate().
+   * {@inheritdoc}
    */
   public function rotate($image, $degrees, $background = NULL) {
     // PHP installations using non-bundled GD do not have imagerotate.
@@ -120,7 +120,7 @@ public function rotate($image, $degrees, $background = NULL) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::crop().
+   * {@inheritdoc}
    */
   public function crop($image, $x, $y, $width, $height) {
     $res = $this->createTmp($image, $width, $height);
@@ -138,7 +138,7 @@ public function crop($image, $x, $y, $width, $height) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::desaturate().
+   * {@inheritdoc}
    */
   public function desaturate($image) {
     // PHP installations using non-bundled GD do not have imagefilter.
@@ -151,7 +151,7 @@ public function desaturate($image) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::load().
+   * {@inheritdoc}
    */
   public function load($image) {
     $extension = str_replace('jpg', 'jpeg', $image->info['extension']);
@@ -172,7 +172,7 @@ public function load($image) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::save().
+   * {@inheritdoc}
    */
   public function save($image, $destination) {
     $scheme = file_uri_scheme($destination);
@@ -212,7 +212,7 @@ public function save($image, $destination) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::getInfo().
+   * {@inheritdoc}
    */
   public function getInfo($image) {
     $details = FALSE;
@@ -277,7 +277,7 @@ public function createTmp($image, $width, $height) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::isAvailable().
+   * {@inheritdoc}
    */
   public static function isAvailable() {
     if ($check = get_extension_funcs('gd')) {
diff --git a/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitGdTest.php b/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitGdTest.php
index 624dc79..ac84f71 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitGdTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitGdTest.php
@@ -8,7 +8,7 @@
 namespace Drupal\system\Tests\Image;
 
 use Drupal\simpletest\DrupalUnitTestBase;
-use Drupal\system\Plugin\ImageToolkitManager;
+use Drupal\Core\ImageToolkit\ImageToolkitManager;
 
 /**
  * Test the core GD image manipulation functions.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitTest.php b/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitTest.php
index 14a84e9..c765d2f 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitTest.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\system\Tests\Image;
 
-use Drupal\system\Plugin\ImageToolkitManager;
+use Drupal\Core\ImageToolkit\ImageToolkitManager;
 
 /**
  * Test that the functions in image.inc correctly pass data to the toolkit.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitTestBase.php b/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitTestBase.php
index 80b1588..503bf0e 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitTestBase.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitTestBase.php
@@ -8,7 +8,7 @@
 namespace Drupal\system\Tests\Image;
 
 use Drupal\simpletest\WebTestBase;
-use Drupal\system\Plugin\ImageToolkitManager;
+use Drupal\Core\ImageToolkit\ImageToolkitManager;
 use stdClass;
 
 /**
diff --git a/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/BrokenToolkit.php b/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/BrokenToolkit.php
index 158083c..3bb2f09 100644
--- a/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/BrokenToolkit.php
+++ b/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/BrokenToolkit.php
@@ -21,7 +21,7 @@
 class BrokenToolkit extends TestToolkit {
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::isAvailable().
+   * {@inheritdoc}
    */
   public static function isAvailable() {
     return FALSE;
diff --git a/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/TestToolkit.php b/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/TestToolkit.php
index 12ebae7..25b9536 100644
--- a/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/TestToolkit.php
+++ b/core/modules/system/tests/modules/image_test/lib/Drupal/image_test/Plugin/ImageToolkit/TestToolkit.php
@@ -10,7 +10,7 @@
 use Drupal\Component\Plugin\PluginBase;
 use Drupal\Component\Annotation\Plugin;
 use Drupal\Core\Annotation\Translation;
-use Drupal\system\Plugin\ImageToolkitInterface;
+use Drupal\Core\ImageToolkit\ImageToolkitInterface;
 
 /**
  * Defines a Test toolkit for image manipulation within Drupal.
@@ -23,7 +23,7 @@
 class TestToolkit extends PluginBase implements ImageToolkitInterface {
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::settingsForm().
+   * {@inheritdoc}
    */
   public function settingsForm() {
     $this->logCall('settings', array());
@@ -31,12 +31,12 @@ public function settingsForm() {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::settingsFormSubmit().
+   * {@inheritdoc}
    */
   public function settingsFormSubmit($form, &$form_state) {}
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::getInfo().
+   * {@inheritdoc}
    */
   public function getInfo($image) {
     $this->logCall('get_info', array($image));
@@ -44,7 +44,7 @@ public function getInfo($image) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::load().
+   * {@inheritdoc}
    */
   public function load($image) {
     $this->logCall('load', array($image));
@@ -52,7 +52,7 @@ public function load($image) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::save().
+   * {@inheritdoc}
    */
   public function save($image, $destination) {
     $this->logCall('save', array($image, $destination));
@@ -62,7 +62,7 @@ public function save($image, $destination) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::crop().
+   * {@inheritdoc}
    */
   public function crop($image, $x, $y, $width, $height) {
     $this->logCall('crop', array($image, $x, $y, $width, $height));
@@ -70,7 +70,7 @@ public function crop($image, $x, $y, $width, $height) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::resize().
+   * {@inheritdoc}
    */
   public function resize($image, $width, $height) {
     $this->logCall('resize', array($image, $width, $height));
@@ -78,7 +78,7 @@ public function resize($image, $width, $height) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::rotate().
+   * {@inheritdoc}
    */
   public function rotate($image, $degrees, $background = NULL) {
     $this->logCall('rotate', array($image, $degrees, $background));
@@ -86,7 +86,7 @@ public function rotate($image, $degrees, $background = NULL) {
   }
 
   /**
-   * Implements \Drupal\system\Plugin\ImageToolkitInterface::desaturate().
+   * {@inheritdoc}
    */
   public function desaturate($image) {
     $this->logCall('desaturate', array($image));
@@ -112,7 +112,7 @@ protected function logCall($op, $args) {
   }
 
   /**
-   * Implements Drupal\system\Plugin\ImageToolkitInterface::isAvailable().
+   * {@inheritdoc}
    */
   public static function isAvailable() {
     return TRUE;
