diff --git a/app/code/Magento/Catalog/Model/Attribute/Config/Data.php b/app/code/Magento/Catalog/Model/Attribute/Config/Data.php
index 2644e1fe83b3aedb87814243aba5bbfc080eafd9..08128376439a3877255d9928c62987f965631719 100644
--- a/app/code/Magento/Catalog/Model/Attribute/Config/Data.php
+++ b/app/code/Magento/Catalog/Model/Attribute/Config/Data.php
@@ -9,11 +9,6 @@ use Magento\Framework\Serialize\SerializerInterface;
 
 class Data extends \Magento\Framework\Config\Data
 {
-    /**
-     * Cache identifier
-     */
-    const CACHE_ID = 'catalog_attributes';
-
     /**
      * @param \Magento\Catalog\Model\Attribute\Config\Reader $reader
      * @param \Magento\Framework\Config\CacheInterface $cache
@@ -23,7 +18,7 @@ class Data extends \Magento\Framework\Config\Data
     public function __construct(
         \Magento\Catalog\Model\Attribute\Config\Reader $reader,
         \Magento\Framework\Config\CacheInterface $cache,
-        $cacheId = 'eav_attributes',
+        $cacheId = 'catalog_attributes',
         SerializerInterface $serializer = null
     ) {
         parent::__construct($reader, $cache, $cacheId, $serializer);
diff --git a/app/code/Magento/Catalog/Model/ProductTypes/Config.php b/app/code/Magento/Catalog/Model/ProductTypes/Config.php
index d6f88d3bf46403b92e3fe0649dcf7d312057641e..7a5465e525bf75678af3edd5bcecaf9f855ed9bc 100644
--- a/app/code/Magento/Catalog/Model/ProductTypes/Config.php
+++ b/app/code/Magento/Catalog/Model/ProductTypes/Config.php
@@ -10,11 +10,9 @@ use Magento\Framework\Serialize\SerializerInterface;
 class Config extends \Magento\Framework\Config\Data implements \Magento\Catalog\Model\ProductTypes\ConfigInterface
 {
     /**
-     * Config constructor
-     *
      * @param Config\Reader $reader
      * @param \Magento\Framework\Config\CacheInterface $cache
-     * @param string $cacheId
+     * @param string|null $cacheId
      * @param SerializerInterface|null $serializer
      */
     public function __construct(
diff --git a/app/code/Magento/Config/Model/Config/Structure/Data.php b/app/code/Magento/Config/Model/Config/Structure/Data.php
index 414addf5b6f06ba4518897f0f7c6440156863bb7..d785ce2b90861d65bbb93f4a6a7349648efcd877 100644
--- a/app/code/Magento/Config/Model/Config/Structure/Data.php
+++ b/app/code/Magento/Config/Model/Config/Structure/Data.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\Config\Model\Config\Structure;
 
+use Magento\Framework\Serialize\SerializerInterface;
+
 class Data extends \Magento\Framework\Config\Data\Scoped
 {
     /**
@@ -12,14 +14,16 @@ class Data extends \Magento\Framework\Config\Data\Scoped
      * @param \Magento\Framework\Config\ScopeInterface $configScope
      * @param \Magento\Framework\Config\CacheInterface $cache
      * @param string $cacheId
+     * @param SerializerInterface|null $serializer
      */
     public function __construct(
         Reader $reader,
         \Magento\Framework\Config\ScopeInterface $configScope,
         \Magento\Framework\Config\CacheInterface $cache,
-        $cacheId
+        $cacheId,
+        SerializerInterface $serializer = null
     ) {
-        parent::__construct($reader, $configScope, $cache, $cacheId);
+        parent::__construct($reader, $configScope, $cache, $cacheId, $serializer);
     }
 
     /**
diff --git a/app/code/Magento/Cron/Model/Config/Data.php b/app/code/Magento/Cron/Model/Config/Data.php
index 3edc2e6237de820d2aa6879a7fcbe697121ef6a1..5b2f638609df7d292030caa5da4c4d6d3fdc1b24 100644
--- a/app/code/Magento/Cron/Model/Config/Data.php
+++ b/app/code/Magento/Cron/Model/Config/Data.php
@@ -14,12 +14,10 @@ use Magento\Framework\Serialize\SerializerInterface;
 class Data extends \Magento\Framework\Config\Data
 {
     /**
-     * Data constructor
-     *
      * @param Reader\Xml $reader
      * @param \Magento\Framework\Config\CacheInterface $cache
      * @param Reader\Db $dbReader
-     * @param string $cacheId
+     * @param string|null $cacheId
      * @param SerializerInterface|null $serializer
      */
     public function __construct(
diff --git a/app/code/Magento/Customer/Model/Address/Config.php b/app/code/Magento/Customer/Model/Address/Config.php
index f53f9277cfa4f95487a19fc900b5953d3ef9dd6a..dc2ceede663fb6886a0ff54d89d7c72a446edc46 100644
--- a/app/code/Magento/Customer/Model/Address/Config.php
+++ b/app/code/Magento/Customer/Model/Address/Config.php
@@ -68,7 +68,7 @@ class Config extends ConfigData
      * @param \Magento\Store\Model\StoreManagerInterface $storeManager
      * @param \Magento\Customer\Helper\Address $addressHelper
      * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
-     * @param string $cacheId
+     * @param string|null $cacheId
      * @param SerializerInterface|null $serializer
      */
     public function __construct(
diff --git a/app/code/Magento/Directory/Model/Country/Postcode/Config/Data.php b/app/code/Magento/Directory/Model/Country/Postcode/Config/Data.php
index 10a27b6a1b36758b7e9599a85be7fa69a186574b..1a5241e0a11e5bf4c4ff3c9b83c2ff8bd3b7dff7 100644
--- a/app/code/Magento/Directory/Model/Country/Postcode/Config/Data.php
+++ b/app/code/Magento/Directory/Model/Country/Postcode/Config/Data.php
@@ -10,17 +10,17 @@ use Magento\Framework\Serialize\SerializerInterface;
 class Data extends \Magento\Framework\Config\Data
 {
     /**
-     * Data constructor
-     *
      * @param Reader $reader
      * @param \Magento\Framework\Config\CacheInterface $cache
-     * @param SerializerInterface $serializer
+     * @param string|null $cacheId
+     * @param SerializerInterface|null $serializer
      */
     public function __construct(
         \Magento\Directory\Model\Country\Postcode\Config\Reader $reader,
         \Magento\Framework\Config\CacheInterface $cache,
+        $cacheId = 'country_postcodes',
         SerializerInterface $serializer = null
     ) {
-        parent::__construct($reader, $cache, 'country_postcodes', $serializer);
+        parent::__construct($reader, $cache, $cacheId, $serializer);
     }
 }
diff --git a/app/code/Magento/Email/Model/Template/Config/Data.php b/app/code/Magento/Email/Model/Template/Config/Data.php
index 182cd276771bb485ea74318dc1135ea84fba2f25..e1d00e20e8d1610494373626b2f2bd420322bc74 100644
--- a/app/code/Magento/Email/Model/Template/Config/Data.php
+++ b/app/code/Magento/Email/Model/Template/Config/Data.php
@@ -9,11 +9,6 @@ use Magento\Framework\Serialize\SerializerInterface;
 
 class Data extends \Magento\Framework\Config\Data
 {
-    /**
-     * Cache identifier
-     */
-    const CACHE_ID = 'email_templates';
-
     /**
      * @param \Magento\Email\Model\Template\Config\Reader $reader
      * @param \Magento\Framework\Config\CacheInterface $cache
@@ -23,7 +18,7 @@ class Data extends \Magento\Framework\Config\Data
     public function __construct(
         \Magento\Email\Model\Template\Config\Reader $reader,
         \Magento\Framework\Config\CacheInterface $cache,
-        $cacheId = self::CACHE_ID,
+        $cacheId = 'email_templates',
         SerializerInterface $serializer = null
     ) {
         parent::__construct($reader, $cache, $cacheId, $serializer);
diff --git a/app/code/Magento/ImportExport/Model/Export/Config.php b/app/code/Magento/ImportExport/Model/Export/Config.php
index 375aa7fa468b882dde846a3018494f5378b75383..a2e1a02ffd306f7c397c2fba7a782a4d581093fa 100644
--- a/app/code/Magento/ImportExport/Model/Export/Config.php
+++ b/app/code/Magento/ImportExport/Model/Export/Config.php
@@ -10,11 +10,9 @@ use Magento\Framework\Serialize\SerializerInterface;
 class Config extends \Magento\Framework\Config\Data implements \Magento\ImportExport\Model\Export\ConfigInterface
 {
     /**
-     * Config constructor
-     *
      * @param Config\Reader $reader
      * @param \Magento\Framework\Config\CacheInterface $cache
-     * @param string $cacheId
+     * @param string|null $cacheId
      * @param SerializerInterface|null $serializer
      */
     public function __construct(
diff --git a/app/code/Magento/ImportExport/Model/Import/Config.php b/app/code/Magento/ImportExport/Model/Import/Config.php
index 88a607c0ca0d59d56e213a42da7dbbd8b9313a96..826303785210a0e17749d18ca43e0d74308190e1 100644
--- a/app/code/Magento/ImportExport/Model/Import/Config.php
+++ b/app/code/Magento/ImportExport/Model/Import/Config.php
@@ -10,11 +10,9 @@ use Magento\Framework\Serialize\SerializerInterface;
 class Config extends \Magento\Framework\Config\Data implements \Magento\ImportExport\Model\Import\ConfigInterface
 {
     /**
-     * Config constructor
-     *
      * @param Config\Reader $reader
      * @param \Magento\Framework\Config\CacheInterface $cache
-     * @param string $cacheId
+     * @param string|null $cacheId
      * @param SerializerInterface|null $serializer
      */
     public function __construct(
diff --git a/app/code/Magento/Indexer/Model/Config/Data.php b/app/code/Magento/Indexer/Model/Config/Data.php
index 703c875d1ef4ef55f9572d24177ffa55f9b985ca..2e1e433e4be25cf356b9f1bdc5be21da154b3b03 100644
--- a/app/code/Magento/Indexer/Model/Config/Data.php
+++ b/app/code/Magento/Indexer/Model/Config/Data.php
@@ -15,12 +15,10 @@ class Data extends \Magento\Framework\Config\Data
     protected $stateCollection;
 
     /**
-     * Data constructor
-     *
      * @param \Magento\Framework\Indexer\Config\Reader $reader
      * @param \Magento\Framework\Config\CacheInterface $cache
      * @param \Magento\Indexer\Model\ResourceModel\Indexer\State\Collection $stateCollection
-     * @param string $cacheId
+     * @param string|null $cacheId
      * @param SerializerInterface|null $serializer
      */
     public function __construct(
diff --git a/app/code/Magento/Sales/Model/Config/Data.php b/app/code/Magento/Sales/Model/Config/Data.php
index ddcb95efdfda64b89f433249c5fa5daffc55e2a6..0d44c627d55525990b9bad21d6a8bc08cf9dbcae 100644
--- a/app/code/Magento/Sales/Model/Config/Data.php
+++ b/app/code/Magento/Sales/Model/Config/Data.php
@@ -14,11 +14,9 @@ use Magento\Framework\Serialize\SerializerInterface;
 class Data extends \Magento\Framework\Config\Data
 {
     /**
-     * Data constructor
-     *
      * @param Reader $reader
      * @param \Magento\Framework\Config\CacheInterface $cache
-     * @param string $cacheId
+     * @param string|null $cacheId
      * @param SerializerInterface|null $serializer
      */
     public function __construct(
diff --git a/dev/tests/integration/framework/Magento/TestFramework/Interception/PluginList.php b/dev/tests/integration/framework/Magento/TestFramework/Interception/PluginList.php
index 9e8901c91fd7587378713afd7abea020cb82fa83..07c2c698eee00bbb3d68fc479be32f3bb8f8220c 100644
--- a/dev/tests/integration/framework/Magento/TestFramework/Interception/PluginList.php
+++ b/dev/tests/integration/framework/Magento/TestFramework/Interception/PluginList.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\TestFramework\Interception;
 
+use Magento\Framework\Serialize\SerializerInterface;
+
 class PluginList extends \Magento\Framework\Interception\PluginList\PluginList
 {
     /**
@@ -22,7 +24,8 @@ class PluginList extends \Magento\Framework\Interception\PluginList\PluginList
      * @param \Magento\Framework\ObjectManagerInterface $objectManager
      * @param \Magento\Framework\ObjectManager\DefinitionInterface $classDefinitions
      * @param array $scopePriorityScheme
-     * @param string $cacheId
+     * @param string|null $cacheId
+     * @param SerializerInterface|null $serializer
      *
      * @SuppressWarnings(PHPMD.ExcessiveParameterList)
      */
@@ -36,7 +39,8 @@ class PluginList extends \Magento\Framework\Interception\PluginList\PluginList
         \Magento\Framework\ObjectManagerInterface $objectManager,
         \Magento\Framework\ObjectManager\DefinitionInterface $classDefinitions,
         array $scopePriorityScheme,
-        $cacheId = 'plugins'
+        $cacheId = 'plugins',
+        SerializerInterface $serializer = null
     ) {
         parent::__construct(
             $reader,
@@ -48,7 +52,8 @@ class PluginList extends \Magento\Framework\Interception\PluginList\PluginList
             $objectManager,
             $classDefinitions,
             $scopePriorityScheme,
-            $cacheId
+            $cacheId,
+            $serializer
         );
         $this->_originScopeScheme = $this->_scopePriorityScheme;
     }
diff --git a/lib/internal/Magento/Framework/App/ResourceConnection/Config.php b/lib/internal/Magento/Framework/App/ResourceConnection/Config.php
index c6b186e05a3df7a2f4e8295726fe91be0b359f47..da0b4d3b033e41e3e3fc694052482bdba935b766 100644
--- a/lib/internal/Magento/Framework/App/ResourceConnection/Config.php
+++ b/lib/internal/Magento/Framework/App/ResourceConnection/Config.php
@@ -6,6 +6,7 @@
 namespace Magento\Framework\App\ResourceConnection;
 
 use Magento\Framework\Config\ConfigOptionsListConstants;
+use Magento\Framework\Serialize\SerializerInterface;
 
 /**
  * Resource configuration, uses application configuration to retrieve resource connection information
@@ -24,7 +25,8 @@ class Config extends \Magento\Framework\Config\Data\Scoped implements ConfigInte
      * @param \Magento\Framework\Config\ScopeInterface $configScope
      * @param \Magento\Framework\Config\CacheInterface $cache
      * @param \Magento\Framework\App\DeploymentConfig $deploymentConfig
-     * @param string $cacheId
+     * @param string|null $cacheId
+     * @param SerializerInterface|null $serializer
      * @throws \InvalidArgumentException
      */
     public function __construct(
@@ -32,9 +34,10 @@ class Config extends \Magento\Framework\Config\Data\Scoped implements ConfigInte
         \Magento\Framework\Config\ScopeInterface $configScope,
         \Magento\Framework\Config\CacheInterface $cache,
         \Magento\Framework\App\DeploymentConfig $deploymentConfig,
-        $cacheId = 'resourcesCache'
+        $cacheId = 'resourcesCache',
+        SerializerInterface $serializer = null
     ) {
-        parent::__construct($reader, $configScope, $cache, $cacheId);
+        parent::__construct($reader, $configScope, $cache, $cacheId, $serializer);
 
         $resource = $deploymentConfig->getConfigData(ConfigOptionsListConstants::KEY_RESOURCE);
         foreach ($resource as $resourceName => $resourceData) {
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/ResourceConnection/ConfigTest.php b/lib/internal/Magento/Framework/App/Test/Unit/ResourceConnection/ConfigTest.php
index fa96ef92f7b0bbc1f93d5260b3722ead98ec88f1..62938aceae2cc7f54019a3df538626bb8303e92b 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/ResourceConnection/ConfigTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/ResourceConnection/ConfigTest.php
@@ -72,6 +72,9 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
             ->with($jsonString)
             ->willReturn($this->resourcesConfig);
 
+        /**
+         * @var \Magento\Framework\App\DeploymentConfig|\PHPUnit_Framework_MockObject_MockObject $deploymentConfigMock
+         */
         $deploymentConfigMock = $this->getMock(\Magento\Framework\App\DeploymentConfig::class, [], [], '', false);
         $deploymentConfigMock->expects($this->once())
             ->method('getConfigData')
diff --git a/lib/internal/Magento/Framework/Cache/Config/Data.php b/lib/internal/Magento/Framework/Cache/Config/Data.php
index a1f203d9aa7bb6c8ef19567f76bfe11ab893f1ce..3a2ba6c8c0d0529506e49f78d3ae1528bfd593ad 100644
--- a/lib/internal/Magento/Framework/Cache/Config/Data.php
+++ b/lib/internal/Magento/Framework/Cache/Config/Data.php
@@ -1,12 +1,15 @@
 <?php
 /**
- * Cache configuration data container. Provides cache configuration data based on current config scope
- *
  * Copyright © 2016 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 namespace Magento\Framework\Cache\Config;
 
+use Magento\Framework\Serialize\SerializerInterface;
+
+/**
+ * Provides cached configuration data based on current config scope
+ */
 class Data extends \Magento\Framework\Config\Data\Scoped
 {
     /**
@@ -21,13 +24,15 @@ class Data extends \Magento\Framework\Config\Data\Scoped
      * @param \Magento\Framework\Config\ScopeInterface $configScope
      * @param \Magento\Framework\Config\CacheInterface $cache
      * @param string $cacheId
+     * @param SerializerInterface|null $serializer
      */
     public function __construct(
         \Magento\Framework\Cache\Config\Reader $reader,
         \Magento\Framework\Config\ScopeInterface $configScope,
         \Magento\Framework\Config\CacheInterface $cache,
-        $cacheId
+        $cacheId,
+        SerializerInterface $serializer = null
     ) {
-        parent::__construct($reader, $configScope, $cache, $cacheId);
+        parent::__construct($reader, $configScope, $cache, $cacheId, $serializer);
     }
 }
diff --git a/lib/internal/Magento/Framework/Communication/Config/Data.php b/lib/internal/Magento/Framework/Communication/Config/Data.php
index 69f86fdcea77ad4791bb5749ef1785ce369909fc..ea2965b1a44b3c0f0ce6dc4ebcc9258fb1ee9a77 100644
--- a/lib/internal/Magento/Framework/Communication/Config/Data.php
+++ b/lib/internal/Magento/Framework/Communication/Config/Data.php
@@ -9,11 +9,6 @@ use Magento\Framework\Serialize\SerializerInterface;
 
 class Data extends \Magento\Framework\Config\Data
 {
-    /**
-     * Cache identifier
-     */
-    const CACHE_ID = 'communication_config_cache';
-
     /**
      * @param \Magento\Framework\Communication\Config\CompositeReader $reader
      * @param \Magento\Framework\Config\CacheInterface $cache
@@ -23,7 +18,7 @@ class Data extends \Magento\Framework\Config\Data
     public function __construct(
         \Magento\Framework\Communication\Config\CompositeReader $reader,
         \Magento\Framework\Config\CacheInterface $cache,
-        $cacheId = self::CACHE_ID,
+        $cacheId = 'communication_config_cache',
         SerializerInterface $serializer = null
     ) {
         parent::__construct($reader, $cache, $cacheId, $serializer);
diff --git a/lib/internal/Magento/Framework/Config/Data.php b/lib/internal/Magento/Framework/Config/Data.php
index 557f79cfb27912a5e32259d3d07d3001983254b9..e3e09f0fca6021883170b2e8c9825535578d0c72 100644
--- a/lib/internal/Magento/Framework/Config/Data.php
+++ b/lib/internal/Magento/Framework/Config/Data.php
@@ -8,6 +8,7 @@
 namespace Magento\Framework\Config;
 
 use Magento\Framework\Serialize\SerializerInterface;
+use Magento\Framework\App\ObjectManager;
 
 /**
  * @SuppressWarnings(PHPMD.NumberOfChildren)
@@ -70,8 +71,6 @@ class Data implements \Magento\Framework\Config\DataInterface
     protected $serializer;
 
     /**
-     * Data constructor
-     *
      * @param ReaderInterface $reader
      * @param CacheInterface $cache
      * @param string $cacheId
@@ -86,12 +85,13 @@ class Data implements \Magento\Framework\Config\DataInterface
         $this->reader = $reader;
         $this->cache = $cache;
         $this->cacheId = $cacheId;
-        $this->serializer = $serializer ?: $this->getSerializer();
+        $this->serializer = $serializer ?: ObjectManager::getInstance()->get(SerializerInterface::class);
         $this->initData();
     }
 
     /**
      * Initialise data for configuration
+     *
      * @return void
      */
     protected function initData()
@@ -99,9 +99,9 @@ class Data implements \Magento\Framework\Config\DataInterface
         $data = $this->cache->load($this->cacheId);
         if (false === $data) {
             $data = $this->reader->read();
-            $this->cache->save($this->getSerializer()->serialize($data), $this->cacheId, $this->cacheTags);
+            $this->cache->save($this->serializer->serialize($data), $this->cacheId, $this->cacheTags);
         } else {
-            $data = $this->getSerializer()->unserialize($data);
+            $data = $this->serializer->unserialize($data);
         }
 
         $this->merge($data);
@@ -144,25 +144,11 @@ class Data implements \Magento\Framework\Config\DataInterface
 
     /**
      * Clear cache data
+     *
      * @return void
      */
     public function reset()
     {
         $this->cache->remove($this->cacheId);
     }
-
-    /**
-     * Get serializer
-     *
-     * @return \Magento\Framework\Serialize\SerializerInterface
-     * @deprecated
-     */
-    protected function getSerializer()
-    {
-        if ($this->serializer === null) {
-            $this->serializer = \Magento\Framework\App\ObjectManager::getInstance()
-                ->get(SerializerInterface::class);
-        }
-        return $this->serializer;
-    }
 }
diff --git a/lib/internal/Magento/Framework/Config/Data/Scoped.php b/lib/internal/Magento/Framework/Config/Data/Scoped.php
index b5f01a14335fa5d1075f84fb9168ccf515ba9366..644c2649e4982ecf4b71d624191998942018bc9d 100644
--- a/lib/internal/Magento/Framework/Config/Data/Scoped.php
+++ b/lib/internal/Magento/Framework/Config/Data/Scoped.php
@@ -5,6 +5,9 @@
  */
 namespace Magento\Framework\Config\Data;
 
+use Magento\Framework\Serialize\SerializerInterface;
+use Magento\Framework\App\ObjectManager;
+
 class Scoped extends \Magento\Framework\Config\Data
 {
     /**
@@ -56,17 +59,20 @@ class Scoped extends \Magento\Framework\Config\Data
      * @param \Magento\Framework\Config\ScopeInterface $configScope
      * @param \Magento\Framework\Config\CacheInterface $cache
      * @param string $cacheId
+     * @param SerializerInterface|null $serializer
      */
     public function __construct(
         \Magento\Framework\Config\ReaderInterface $reader,
         \Magento\Framework\Config\ScopeInterface $configScope,
         \Magento\Framework\Config\CacheInterface $cache,
-        $cacheId
+        $cacheId,
+        SerializerInterface $serializer = null
     ) {
         $this->_reader = $reader;
         $this->_configScope = $configScope;
         $this->_cache = $cache;
         $this->_cacheId = $cacheId;
+        $this->serializer = $serializer ?: ObjectManager::getInstance()->get(SerializerInterface::class);;
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/Event/Config/Data.php b/lib/internal/Magento/Framework/Event/Config/Data.php
index 7bd082e5d465bc1299af865c42a24e0c504640b0..d5858be832fee7e87317150c88a40fd0b9f65048 100644
--- a/lib/internal/Magento/Framework/Event/Config/Data.php
+++ b/lib/internal/Magento/Framework/Event/Config/Data.php
@@ -1,12 +1,12 @@
 <?php
 /**
- * Event configuration data container
- *
  * Copyright © 2016 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 namespace Magento\Framework\Event\Config;
 
+use Magento\Framework\Serialize\SerializerInterface;
+
 class Data extends \Magento\Framework\Config\Data\Scoped
 {
     /**
@@ -20,14 +20,16 @@ class Data extends \Magento\Framework\Config\Data\Scoped
      * @param \Magento\Framework\Event\Config\Reader $reader
      * @param \Magento\Framework\Config\ScopeInterface $configScope
      * @param \Magento\Framework\Config\CacheInterface $cache
-     * @param string $cacheId
+     * @param string|null $cacheId
+     * @param SerializerInterface|null $serializer
      */
     public function __construct(
         \Magento\Framework\Event\Config\Reader $reader,
         \Magento\Framework\Config\ScopeInterface $configScope,
         \Magento\Framework\Config\CacheInterface $cache,
-        $cacheId = 'event_config_cache'
+        $cacheId = 'event_config_cache',
+        SerializerInterface $serializer = null
     ) {
-        parent::__construct($reader, $configScope, $cache, $cacheId);
+        parent::__construct($reader, $configScope, $cache, $cacheId, $serializer);
     }
 }
diff --git a/lib/internal/Magento/Framework/Interception/PluginList/PluginList.php b/lib/internal/Magento/Framework/Interception/PluginList/PluginList.php
index e3ee36ac3c7a841e9f8e429eb679256495632565..3406a1395675fc81524cc7cdc53984d67631c283 100644
--- a/lib/internal/Magento/Framework/Interception/PluginList/PluginList.php
+++ b/lib/internal/Magento/Framework/Interception/PluginList/PluginList.php
@@ -1,7 +1,5 @@
 <?php
 /**
- * Plugin configuration storage. Provides list of plugins configured for type.
- *
  * Copyright © 2016 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -21,6 +19,8 @@ use Magento\Framework\Serialize\SerializerInterface;
 use Magento\Framework\Serialize\Serializer\Serialize;
 
 /**
+ * Plugin config, provides list of plugins for a type
+ *
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  */
 class PluginList extends Scoped implements InterceptionPluginList
diff --git a/lib/internal/Magento/Framework/Mview/Config/Data.php b/lib/internal/Magento/Framework/Mview/Config/Data.php
index d65270be09ea0bdcfd6e01e63ffcd507bb82cca4..0ddf85d5d5c8536841fffdff4697aa885679538e 100644
--- a/lib/internal/Magento/Framework/Mview/Config/Data.php
+++ b/lib/internal/Magento/Framework/Mview/Config/Data.php
@@ -15,12 +15,10 @@ class Data extends \Magento\Framework\Config\Data
     protected $stateCollection;
 
     /**
-     * Data constructor
-     *
      * @param Reader $reader
      * @param \Magento\Framework\Config\CacheInterface $cache
      * @param \Magento\Framework\Mview\View\State\CollectionInterface $stateCollection
-     * @param string $cacheId
+     * @param string|null $cacheId
      * @param SerializerInterface|null $serializer
      */
     public function __construct(