diff --git a/core/core.services.yml b/core/core.services.yml
index 07f17b9..eaf99b4 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -6,7 +6,9 @@ services:
       - [setContainer, ['@service_container']]
   cache_contexts:
     class: Drupal\Core\Cache\CacheContexts
-    arguments: ['@service_container', '%cache_contexts%' ]
+    arguments: ['%cache_contexts%' ]
+    calls:
+      - [setContainer, ['@service_container']]
   cache_context.url:
     class: Drupal\Core\Cache\UrlCacheContext
     arguments: ['@request']
@@ -115,13 +117,17 @@ services:
       - [setRequest, ['@?request=']]
   keyvalue:
     class: Drupal\Core\KeyValueStore\KeyValueFactory
-    arguments: ['@service_container', '@settings']
+    arguments: ['@settings']
+    calls:
+      - [setContainer, ['@service_container']]
   keyvalue.database:
     class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
     arguments: ['@database']
   keyvalue.expirable:
     class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
-    arguments: ['@service_container', '@settings']
+    arguments: ['@settings']
+    calls:
+      - [setContainer, ['@service_container']]
   keyvalue.expirable.database:
     class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
     tags:
@@ -187,7 +193,9 @@ services:
     arguments: ['@config.factory', '@module_handler', '@cache.default', '@info_parser', '@config.installer', '@router.builder']
   entity.manager:
     class: Drupal\Core\Entity\EntityManager
-    arguments: ['@container.namespaces', '@service_container', '@module_handler', '@cache.default', '@language_manager', '@string_translation']
+    arguments: ['@container.namespaces', '@module_handler', '@cache.default', '@language_manager', '@string_translation']
+    calls:
+      - [setContainer, ['@service_container']]
     tags:
       - { name: plugin_manager_cache_clear }
   entity.form_builder:
@@ -230,13 +238,16 @@ services:
     arguments: ['@service_container']
   controller_resolver:
     class: Drupal\Core\Controller\ControllerResolver
-    arguments: ['@service_container']
+    calls:
+      - [setContainer, ['@service_container']]
   title_resolver:
     class: Drupal\Core\Controller\TitleResolver
     arguments: ['@controller_resolver', '@string_translation']
   http_kernel:
     class: Drupal\Core\HttpKernel
-    arguments: ['@event_dispatcher', '@service_container', '@controller_resolver', '@request_stack']
+    arguments: ['@event_dispatcher', '@controller_resolver', '@request_stack']
+    calls:
+      - [setContainer, ['@service_container']]
   language_manager:
     class: Drupal\Core\Language\LanguageManager
     arguments: ['@language.default']
@@ -423,7 +434,9 @@ services:
       - { name: event_subscriber }
   route_content_form_controller_subscriber:
     class: Drupal\Core\EventSubscriber\ContentFormControllerSubscriber
-    arguments: ['@service_container', '@controller_resolver', '@form_builder']
+    arguments: ['@controller_resolver', '@form_builder']
+    calls:
+      - [setContainer, ['@service_container']]
     tags:
       - { name: event_subscriber }
   route_special_attributes_subscriber:
diff --git a/core/lib/Drupal/Core/Cache/CacheContexts.php b/core/lib/Drupal/Core/Cache/CacheContexts.php
index cbc2e9e..362069b 100644
--- a/core/lib/Drupal/Core/Cache/CacheContexts.php
+++ b/core/lib/Drupal/Core/Cache/CacheContexts.php
@@ -8,7 +8,7 @@
 namespace Drupal\Core\Cache;
 
 use Drupal\Core\Database\Query\SelectInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\ContainerAware;
 
 /**
  * Defines the CacheContexts service.
@@ -16,14 +16,7 @@
  * Converts string placeholders into their final string values, to be used as a
  * cache key.
  */
-class CacheContexts {
-
-  /**
-   * The service container.
-   *
-   * @var \Symfony\Component\DependencyInjection\ContainerInterface
-   */
-  protected $container;
+class CacheContexts extends ContainerAware {
 
   /**
    * Available cache contexts and corresponding labels.
@@ -35,15 +28,12 @@ class CacheContexts {
   /**
    * Constructs a CacheContexts object.
    *
-   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
-   *   The current service container.
    * @param array $contexts
    *   An array of key-value pairs, where the keys are service names (which also
    *   serve as the corresponding cache context token) and the values are the
    *   cache context labels.
    */
-  public function __construct(ContainerInterface $container, array $contexts) {
-    $this->container = $container;
+  public function __construct(array $contexts) {
     $this->contexts = $contexts;
   }
 
diff --git a/core/lib/Drupal/Core/Controller/ControllerResolver.php b/core/lib/Drupal/Core/Controller/ControllerResolver.php
index 7928c36..5e1cf48 100644
--- a/core/lib/Drupal/Core/Controller/ControllerResolver.php
+++ b/core/lib/Drupal/Core/Controller/ControllerResolver.php
@@ -11,7 +11,6 @@
 use Symfony\Component\HttpKernel\Controller\ControllerResolver as BaseControllerResolver;
 use Symfony\Component\HttpKernel\Log\LoggerInterface;
 use Symfony\Component\DependencyInjection\ContainerAwareInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
  * ControllerResolver to enhance controllers beyond Symfony's basic handling.
@@ -30,12 +29,7 @@
  */
 class ControllerResolver extends BaseControllerResolver implements ControllerResolverInterface {
 
-  /**
-   * The injection container that should be injected into all controllers.
-   *
-   * @var \Symfony\Component\DependencyInjection\ContainerInterface
-   */
-  protected $container;
+   use \Symfony\Component\DependencyInjection\ContainerAwareTrait;
 
   /**
    * The PSR-3 logger. (optional)
@@ -47,14 +41,10 @@ class ControllerResolver extends BaseControllerResolver implements ControllerRes
   /**
    * Constructs a new ControllerResolver.
    *
-   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
-   *   A ContainerInterface instance.
    * @param \Symfony\Component\HttpKernel\Log\LoggerInterface $logger
    *   (optional) A LoggerInterface instance.
    */
-  public function __construct(ContainerInterface $container, LoggerInterface $logger = NULL) {
-    $this->container = $container;
-
+  public function __construct(LoggerInterface $logger = NULL) {
     parent::__construct($logger);
   }
 
diff --git a/core/lib/Drupal/Core/Entity/EntityManager.php b/core/lib/Drupal/Core/Entity/EntityManager.php
index 3ea9429..f091e01 100644
--- a/core/lib/Drupal/Core/Entity/EntityManager.php
+++ b/core/lib/Drupal/Core/Entity/EntityManager.php
@@ -24,7 +24,6 @@
 use Drupal\Core\Plugin\Discovery\InfoHookDecorator;
 use Drupal\Core\StringTranslation\TranslationInterface;
 use Drupal\Core\TypedData\TranslatableInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
  * Manages entity type plugin definitions.
@@ -42,6 +41,8 @@
  */
 class EntityManager extends PluginManagerBase implements EntityManagerInterface {
 
+  use \Symfony\Component\DependencyInjection\ContainerAwareTrait;
+
   /**
    * Extra fields by bundle.
    *
@@ -50,13 +51,6 @@ class EntityManager extends PluginManagerBase implements EntityManagerInterface
   protected $extraFields = array();
 
   /**
-   * The injection container that should be passed into the controller factory.
-   *
-   * @var \Symfony\Component\DependencyInjection\ContainerInterface
-   */
-  protected $container;
-
-  /**
    * Contains instantiated controllers keyed by controller type and entity type.
    *
    * @var array
@@ -134,8 +128,6 @@ class EntityManager extends PluginManagerBase implements EntityManagerInterface
    * @param \Traversable $namespaces
    *   An object that implements \Traversable which contains the root paths
    *   keyed by the corresponding namespace to look for plugin implementations,
-   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
-   *   The service container this object should use.
    * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
    *   The module handler.
    * @param \Drupal\Core\Cache\CacheBackendInterface $cache
@@ -145,7 +137,7 @@ class EntityManager extends PluginManagerBase implements EntityManagerInterface
    * @param \Drupal\Core\StringTranslation\TranslationInterface $translation_manager
    *   The string translationManager.
    */
-  public function __construct(\Traversable $namespaces, ContainerInterface $container, ModuleHandlerInterface $module_handler, CacheBackendInterface $cache, LanguageManager $language_manager, TranslationInterface $translation_manager) {
+  public function __construct(\Traversable $namespaces, ModuleHandlerInterface $module_handler, CacheBackendInterface $cache, LanguageManager $language_manager, TranslationInterface $translation_manager) {
     // Allow the plugin definition to be altered by hook_entity_type_alter().
 
     $this->moduleHandler = $module_handler;
@@ -159,7 +151,6 @@ public function __construct(\Traversable $namespaces, ContainerInterface $contai
     $this->discovery = new AlterDecorator($this->discovery, 'entity_type');
     $this->discovery = new CacheDecorator($this->discovery, 'entity_type:' . $this->languageManager->getCurrentLanguage()->id, 'default', Cache::PERMANENT, array('entity_types' => TRUE));
 
-    $this->container = $container;
   }
 
   /**
diff --git a/core/lib/Drupal/Core/EventSubscriber/ContentFormControllerSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/ContentFormControllerSubscriber.php
index 676d273..4fc7111 100644
--- a/core/lib/Drupal/Core/EventSubscriber/ContentFormControllerSubscriber.php
+++ b/core/lib/Drupal/Core/EventSubscriber/ContentFormControllerSubscriber.php
@@ -14,18 +14,12 @@
 use Symfony\Component\HttpKernel\KernelEvents;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\ContainerAware;
 
 /**
  * Subscriber for setting wrapping form logic.
  */
-class ContentFormControllerSubscriber implements EventSubscriberInterface {
-
-  /**
-   * The service container.
-   *
-   * @var \Symfony\Component\DependencyInjection\ContainerInterface
-   */
-  protected $container;
+class ContentFormControllerSubscriber extends ContainerAware implements EventSubscriberInterface {
 
   /**
    * The controller resolver.
@@ -44,15 +38,12 @@ class ContentFormControllerSubscriber implements EventSubscriberInterface {
   /**
    * Constructs a new ContentFormControllerSubscriber object.
    *
-   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
-   *   The service container.
    * @param \Drupal\Core\Controller\ControllerResolverInterface $resolver
    *   The controller resolver.
    * @param \Drupal\Core\Form\FormBuilderInterface $form_builder
    *   The form builder.
    */
-  public function __construct(ContainerInterface $container, ControllerResolverInterface $resolver, FormBuilderInterface $form_builder) {
-    $this->container = $container;
+  public function __construct(ControllerResolverInterface $resolver, FormBuilderInterface $form_builder) {
     $this->resolver = $resolver;
     $this->formBuilder = $form_builder;
   }
diff --git a/core/lib/Drupal/Core/HttpKernel.php b/core/lib/Drupal/Core/HttpKernel.php
index 1f75531..198682f 100644
--- a/core/lib/Drupal/Core/HttpKernel.php
+++ b/core/lib/Drupal/Core/HttpKernel.php
@@ -14,14 +14,10 @@
 
 use Symfony\Cmf\Component\Routing\RouteObjectInterface;
 use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\RequestStack;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpFoundation\StreamedResponse;
 use Symfony\Component\HttpKernel\HttpKernelInterface;
-use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpKernel\HttpKernel as BaseHttpKernel;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 
 /**
  * This HttpKernel is used to manage scope changes of the DI container.
@@ -31,29 +27,10 @@
  */
 class HttpKernel extends BaseHttpKernel
 {
-    protected $container;
+    use \Symfony\Component\DependencyInjection\ContainerAwareTrait;
 
     private $esiSupport;
 
-  /**
-   * Constructs a new HttpKernel.
-   *
-   * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher
-   *   The event dispatcher.
-   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
-   *   The dependency injection container.
-   * @param \Symfony\Component\HttpKernel\Controller\ControllerResolverInterface $controller_resolver
-   *   The controller resolver.
-   * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
-   *   The request stack.
-   */
-    public function __construct(EventDispatcherInterface $dispatcher, ContainerInterface $container, ControllerResolverInterface $controller_resolver, RequestStack $request_stack = NULL)
-    {
-        parent::__construct($dispatcher, $controller_resolver, $request_stack);
-
-        $this->container = $container;
-    }
-
     public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
     {
         $request->headers->set('X-Php-Ob-Level', ob_get_level());
diff --git a/core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactory.php b/core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactory.php
index b1efbf0..ae40d43 100644
--- a/core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactory.php
+++ b/core/lib/Drupal/Core/KeyValueStore/KeyValueExpirableFactory.php
@@ -7,8 +7,6 @@
 
 namespace Drupal\Core\KeyValueStore;
 
-use Symfony\Component\DependencyInjection\ContainerInterface;
-
 /**
  * Defines the key/value store factory.
  */
diff --git a/core/lib/Drupal/Core/KeyValueStore/KeyValueFactory.php b/core/lib/Drupal/Core/KeyValueStore/KeyValueFactory.php
index a1a9d65..38da9e5 100644
--- a/core/lib/Drupal/Core/KeyValueStore/KeyValueFactory.php
+++ b/core/lib/Drupal/Core/KeyValueStore/KeyValueFactory.php
@@ -7,12 +7,12 @@
 
 namespace Drupal\Core\KeyValueStore;
 use Drupal\Component\Utility\Settings;
-use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\ContainerAware;
 
 /**
  * Defines the key/value store factory.
  */
-class KeyValueFactory implements KeyValueFactoryInterface {
+class KeyValueFactory extends ContainerAware implements KeyValueFactoryInterface {
 
   /**
    * The specific setting name prefix.
@@ -45,11 +45,6 @@ class KeyValueFactory implements KeyValueFactoryInterface {
   protected $stores = array();
 
   /**
-   * var \Symfony\Component\DependencyInjection\ContainerInterface
-   */
-  protected $container;
-
-  /**
    * The read-only settings container.
    *
    * @var \Drupal\Component\Utility\Settings
@@ -57,13 +52,10 @@ class KeyValueFactory implements KeyValueFactoryInterface {
   protected $settings;
 
   /**
-   * @param \Symfony\Component\DependencyInjection\ContainerInterface $container
-   *   The service container.
    * @param \Drupal\Component\Utility\Settings $settings
    *  The read-only settings container.
    */
-  function __construct(ContainerInterface $container, Settings $settings) {
-    $this->container = $container;
+  function __construct( Settings $settings) {
     $this->settings = $settings;
   }
 
