diff --git a/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php b/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php
index e55da17969880f938970e312edb04d7670fd0506..c40ff5a1659cc1512af4efef6c2185ae5f7f559c 100644
--- a/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php
+++ b/app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php
@@ -8,24 +8,56 @@ namespace Magento\AdminNotification\Controller\Adminhtml\System\Message;
 
 class ListAction extends \Magento\Backend\App\AbstractAction
 {
+    /**
+     * @var \Magento\Framework\Json\Helper\Data
+     */
+    protected $jsonHelper;
+
+    /**
+     * @var \Magento\AdminNotification\Model\Resource\System\Message\Collection
+     */
+    protected $messageCollection;
+
+    /**
+     * Initialize ListAction
+     *
+     * @param \Magento\Backend\App\Action\Context $context
+     * @param \Magento\Framework\Json\Helper\Data $jsonHelper
+     * @param \Magento\AdminNotification\Model\Resource\System\Message\Collection $messageCollection
+     */
+    public function __construct(
+        \Magento\Backend\App\Action\Context $context,
+        \Magento\Framework\Json\Helper\Data $jsonHelper,
+        \Magento\AdminNotification\Model\Resource\System\Message\Collection $messageCollection
+    ) {
+        $this->jsonHelper = $jsonHelper;
+        $this->messageCollection = $messageCollection;
+        parent::__construct($context);
+    }
+
     /**
      * @return void
      */
     public function execute()
     {
         $severity = $this->getRequest()->getParam('severity');
-        $messageCollection = $this->_objectManager->get(
-            'Magento\AdminNotification\Model\Resource\System\Message\Collection'
-        );
         if ($severity) {
-            $messageCollection->setSeverity($severity);
+            $this->messageCollection->setSeverity($severity);
         }
         $result = [];
-        foreach ($messageCollection->getItems() as $item) {
-            $result[] = ['severity' => $item->getSeverity(), 'text' => $item->getText()];
+        foreach ($this->messageCollection->getItems() as $item) {
+            $result[] = [
+                'severity' => $item->getSeverity(),
+                'text' => $item->getText(),
+            ];
+        }
+        if (empty($result)) {
+            $result[] = [
+                'severity' => (string)\Magento\Framework\Notification\MessageInterface::SEVERITY_NOTICE,
+                'text' => 'You have viewed and resolved all recent system notices. '
+                    . 'Please refresh the web page to clear the notice alert.',
+            ];
         }
-        $this->getResponse()->representJson(
-            $this->_objectManager->get('Magento\Framework\Json\Helper\Data')->jsonEncode($result)
-        );
+        $this->getResponse()->representJson($this->jsonHelper->jsonEncode($result));
     }
 }
diff --git a/app/code/Magento/AdminNotification/etc/config.xml b/app/code/Magento/AdminNotification/etc/config.xml
index 35643f62753d250562fa1f5c9f4e568ebb00f059..63c65f9ed9bfe8f6a121cc171d1778eac64f7652 100644
--- a/app/code/Magento/AdminNotification/etc/config.xml
+++ b/app/code/Magento/AdminNotification/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <system>
             <adminnotification>
diff --git a/app/code/Magento/AdminNotification/etc/module.xml b/app/code/Magento/AdminNotification/etc/module.xml
index cfc791e9072d98610989d0585f175278b306f91a..dd60aeb295b79ab9516a5482f221a1748bf27382 100644
--- a/app/code/Magento/AdminNotification/etc/module.xml
+++ b/app/code/Magento/AdminNotification/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_AdminNotification" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
         </sequence>
     </module>
diff --git a/app/code/Magento/Authorization/Setup/InstallData.php b/app/code/Magento/Authorization/Setup/InstallData.php
index 68c2f5fdc469da597e3c0987b19306c5ebe7cd37..17fd1fd4039e10dad8ee75e402265cc6d7504f88 100644
--- a/app/code/Magento/Authorization/Setup/InstallData.php
+++ b/app/code/Magento/Authorization/Setup/InstallData.php
@@ -85,5 +85,17 @@ class InstallData implements InstallDataInterface
                 $rule->setData('resource_id', 'Magento_Backend::all')->save();
             }
         }
+
+        /**
+         * Delete rows by condition from authorization_rule
+         */
+        $setup->startSetup();
+
+        $tableName = $setup->getTable('authorization_rule');
+        if ($tableName) {
+            $setup->getConnection()->delete($tableName, ['resource_id = ?' => 'admin/system/tools/compiler']);
+        }
+
+        $setup->endSetup();
     }
 }
diff --git a/app/code/Magento/Backend/etc/adminhtml/menu.xml b/app/code/Magento/Backend/etc/adminhtml/menu.xml
index e3eee55cf4e3b90e3ce046578cc988867079c4c4..08f50423e98189a9cf95a5fa031bd62658c833b9 100644
--- a/app/code/Magento/Backend/etc/adminhtml/menu.xml
+++ b/app/code/Magento/Backend/etc/adminhtml/menu.xml
@@ -9,7 +9,7 @@
     <menu>
         <add id="Magento_Backend::system_design_schedule" title="Schedule" module="Magento_Backend" sortOrder="30" parent="Magento_Backend::system_design" action="adminhtml/system_design" resource="Magento_Backend::schedule"/>
         <add id="Magento_Backend::system_currency" title="Currency" module="Magento_Backend" sortOrder="30" parent="Magento_Backend::stores" action="adminhtml/system_currency" resource="Magento_CurrencySymbol::system_currency"/>
-        <add id="Magento_Backend::system_store" title="All Stores" module="Magento_Core" sortOrder="10" parent="Magento_Backend::stores_settings" action="adminhtml/system_store/" resource="Magento_Backend::store"/>
+        <add id="Magento_Backend::system_store" title="All Stores" module="Magento_Backend" sortOrder="10" parent="Magento_Backend::stores_settings" action="adminhtml/system_store/" resource="Magento_Backend::store"/>
         <add id="Magento_Backend::dashboard" title="Dashboard" module="Magento_Backend" sortOrder="10" action="adminhtml/dashboard" resource="Magento_Backend::dashboard"/>
         <add id="Magento_Backend::system" title="System" module="Magento_Backend" sortOrder="80" resource="Magento_Backend::system"/>
         <add id="Magento_Backend::system_tools" title="Tools" module="Magento_Backend" sortOrder="50" parent="Magento_Backend::system" resource="Magento_Backend::tools"/>
diff --git a/app/code/Magento/Backend/etc/config.xml b/app/code/Magento/Backend/etc/config.xml
index 9e58d76efd228d17e7df66ec80a1d687753d64bc..0d4c5d7180513828a1fd452c6c17d3847b8910d3 100644
--- a/app/code/Magento/Backend/etc/config.xml
+++ b/app/code/Magento/Backend/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <system>
             <media_storage_configuration>
diff --git a/app/code/Magento/Bundle/Api/ProductLinkManagementInterface.php b/app/code/Magento/Bundle/Api/ProductLinkManagementInterface.php
index f10ef9e27291ebad1a1a97e8d2fac5621b538c37..2109cde0f95d452be9456038b8cfc2fa8ca30726 100644
--- a/app/code/Magento/Bundle/Api/ProductLinkManagementInterface.php
+++ b/app/code/Magento/Bundle/Api/ProductLinkManagementInterface.php
@@ -21,7 +21,7 @@ interface ProductLinkManagementInterface
     /**
      * Add child product to specified Bundle option by product sku
      *
-     * @param string $productSku
+     * @param string $sku
      * @param int $optionId
      * @param \Magento\Bundle\Api\Data\LinkInterface $linkedProduct
      * @throws \Magento\Framework\Exception\NoSuchEntityException
@@ -29,7 +29,7 @@ interface ProductLinkManagementInterface
      * @throws \Magento\Framework\Exception\InputException
      * @return int
      */
-    public function addChildByProductSku($productSku, $optionId, \Magento\Bundle\Api\Data\LinkInterface $linkedProduct);
+    public function addChildByProductSku($sku, $optionId, \Magento\Bundle\Api\Data\LinkInterface $linkedProduct);
 
     /**
      * @param \Magento\Catalog\Api\Data\ProductInterface $product
@@ -49,12 +49,12 @@ interface ProductLinkManagementInterface
     /**
      * Remove product from Bundle product option
      *
-     * @param string $productSku
+     * @param string $sku
      * @param int $optionId
      * @param string $childSku
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\InputException
      * @return bool
      */
-    public function removeChild($productSku, $optionId, $childSku);
+    public function removeChild($sku, $optionId, $childSku);
 }
diff --git a/app/code/Magento/Bundle/Api/ProductOptionRepositoryInterface.php b/app/code/Magento/Bundle/Api/ProductOptionRepositoryInterface.php
index 61c942a3b15344a5ed715f7279c6a9d8b7fb9bca..26857e69449cd04a3e130a3feb1432d87aaa198c 100644
--- a/app/code/Magento/Bundle/Api/ProductOptionRepositoryInterface.php
+++ b/app/code/Magento/Bundle/Api/ProductOptionRepositoryInterface.php
@@ -11,23 +11,23 @@ interface ProductOptionRepositoryInterface
     /**
      * Get option for bundle product
      *
-     * @param string $productSku
+     * @param string $sku
      * @param int $optionId
      * @return \Magento\Bundle\Api\Data\OptionInterface
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\InputException
      */
-    public function get($productSku, $optionId);
+    public function get($sku, $optionId);
 
     /**
      * Get all options for bundle product
      *
-     * @param string $productSku
+     * @param string $sku
      * @return \Magento\Bundle\Api\Data\OptionInterface[]
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\InputException
      */
-    public function getList($productSku);
+    public function getList($sku);
 
     /**
      * Remove bundle option
@@ -42,13 +42,13 @@ interface ProductOptionRepositoryInterface
     /**
      * Remove bundle option
      *
-     * @param string $productSku
+     * @param string $sku
      * @param int $optionId
      * @return bool
      * @throws \Magento\Framework\Exception\CouldNotSaveException
      * @throws \Magento\Framework\Exception\InputException
      */
-    public function deleteById($productSku, $optionId);
+    public function deleteById($sku, $optionId);
 
     /**
      * Add new option for bundle product
diff --git a/app/code/Magento/Bundle/Model/LinkManagement.php b/app/code/Magento/Bundle/Model/LinkManagement.php
index d6afcd452770da6fddd3b506edcacaa7a91c8860..408747b81e500ca07a4fb8125733e0a0a6fe1960 100644
--- a/app/code/Magento/Bundle/Model/LinkManagement.php
+++ b/app/code/Magento/Bundle/Model/LinkManagement.php
@@ -97,10 +97,10 @@ class LinkManagement implements \Magento\Bundle\Api\ProductLinkManagementInterfa
     /**
      * {@inheritdoc}
      */
-    public function addChildByProductSku($productSku, $optionId, \Magento\Bundle\Api\Data\LinkInterface $linkedProduct)
+    public function addChildByProductSku($sku, $optionId, \Magento\Bundle\Api\Data\LinkInterface $linkedProduct)
     {
         /** @var \Magento\Catalog\Model\Product $product */
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         return $this->addChild($product, $optionId, $linkedProduct);
     }
 
@@ -180,13 +180,13 @@ class LinkManagement implements \Magento\Bundle\Api\ProductLinkManagementInterfa
     /**
      * {@inheritdoc}
      */
-    public function removeChild($productSku, $optionId, $childSku)
+    public function removeChild($sku, $optionId, $childSku)
     {
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
 
         if ($product->getTypeId() != \Magento\Catalog\Model\Product\Type::TYPE_BUNDLE) {
             throw new InputException(
-                sprintf('Product with specified sku: %s is not a bundle product', $productSku)
+                sprintf('Product with specified sku: %s is not a bundle product', $sku)
             );
         }
 
diff --git a/app/code/Magento/Bundle/Model/OptionRepository.php b/app/code/Magento/Bundle/Model/OptionRepository.php
index 6fed5aa5798aed4aa722bb8dacb52a2d9f8ebe1f..b9d42b974803e7f913e21e196601083be313d0d9 100644
--- a/app/code/Magento/Bundle/Model/OptionRepository.php
+++ b/app/code/Magento/Bundle/Model/OptionRepository.php
@@ -96,9 +96,9 @@ class OptionRepository implements \Magento\Bundle\Api\ProductOptionRepositoryInt
     /**
      * {@inheritdoc}
      */
-    public function get($productSku, $optionId)
+    public function get($sku, $optionId)
     {
-        $product = $this->getProduct($productSku);
+        $product = $this->getProduct($sku);
 
         /** @var \Magento\Bundle\Model\Option $option */
         $option = $this->type->getOptionsCollection($product)->getItemById($optionId);
@@ -126,9 +126,9 @@ class OptionRepository implements \Magento\Bundle\Api\ProductOptionRepositoryInt
     /**
      * {@inheritdoc}
      */
-    public function getList($productSku)
+    public function getList($sku)
     {
-        $product = $this->getProduct($productSku);
+        $product = $this->getProduct($sku);
         return $this->productOptionList->getItems($product);
     }
 
@@ -152,9 +152,9 @@ class OptionRepository implements \Magento\Bundle\Api\ProductOptionRepositoryInt
     /**
      * {@inheritdoc}
      */
-    public function deleteById($productSku, $optionId)
+    public function deleteById($sku, $optionId)
     {
-        $product = $this->getProduct($productSku);
+        $product = $this->getProduct($sku);
         $optionCollection = $this->type->getOptionsCollection($product);
         $optionCollection->setIdFilter($optionId);
         return $this->delete($optionCollection->getFirstItem());
@@ -217,13 +217,13 @@ class OptionRepository implements \Magento\Bundle\Api\ProductOptionRepositoryInt
     }
 
     /**
-     * @param string $productSku
+     * @param string $sku
      * @return \Magento\Catalog\Api\Data\ProductInterface
      * @throws \Magento\Framework\Exception\InputException
      */
-    private function getProduct($productSku)
+    private function getProduct($sku)
     {
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         if ($product->getTypeId() != \Magento\Catalog\Model\Product\Type::TYPE_BUNDLE) {
             throw new InputException('Only implemented for bundle product');
         }
diff --git a/app/code/Magento/Bundle/etc/config.xml b/app/code/Magento/Bundle/etc/config.xml
index 45baec43c5ab09a3ea80b77b16e83a02da0e350d..10a14c0aab73d501f8581ba9245116e6b5246df9 100644
--- a/app/code/Magento/Bundle/etc/config.xml
+++ b/app/code/Magento/Bundle/etc/config.xml
@@ -5,5 +5,5 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
 </config>
diff --git a/app/code/Magento/Bundle/etc/webapi.xml b/app/code/Magento/Bundle/etc/webapi.xml
index 36bb8f577597f238c0dce61748b7f33294bdb5a7..ec0dffcf1049e2d29da72bb80d02e8fba97ee316 100644
--- a/app/code/Magento/Bundle/etc/webapi.xml
+++ b/app/code/Magento/Bundle/etc/webapi.xml
@@ -7,7 +7,7 @@
 -->
 <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
-    <route url="/V1/bundle-products/:productSku/links/:optionId" method="POST">
+    <route url="/V1/bundle-products/:sku/links/:optionId" method="POST">
         <service class="Magento\Bundle\Api\ProductLinkManagementInterface" method="addChildByProductSku"/>
         <resources>
             <resource ref="Magento_Catalog::products"/>
@@ -19,43 +19,43 @@
             <resource ref="Magento_Catalog::products"/>
         </resources>
     </route>
-    <route url="/V1/bundle-products/:productSku/option/:optionId/child/:childSku" method="DELETE">
+    <route url="/V1/bundle-products/:sku/options/:optionId/children/:childSku" method="DELETE">
         <service class="Magento\Bundle\Api\ProductLinkManagementInterface" method="removeChild"/>
         <resources>
             <resource ref="Magento_Catalog::products"/>
         </resources>
     </route>
-    <route url="/V1/bundle-products/:productSku/option/all" method="GET">
+    <route url="/V1/bundle-products/:sku/options/all" method="GET">
         <service class="Magento\Bundle\Api\ProductOptionRepositoryInterface" method="getList" />
         <resources>
             <resource ref="Magento_Catalog::products" />
         </resources>
     </route>
-    <route url="/V1/bundle-products/option/types" method="GET">
+    <route url="/V1/bundle-products/options/types" method="GET">
         <service class="Magento\Bundle\Api\ProductOptionTypeListInterface" method="getItems" />
         <resources>
             <resource ref="Magento_Catalog::products" />
         </resources>
     </route>
-    <route url="/V1/bundle-products/:productSku/option/:optionId" method="GET">
+    <route url="/V1/bundle-products/:sku/options/:optionId" method="GET">
         <service class="Magento\Bundle\Api\ProductOptionRepositoryInterface" method="get" />
         <resources>
             <resource ref="Magento_Catalog::products" />
         </resources>
     </route>
-    <route url="/V1/bundle-products/option/add" method="POST">
+    <route url="/V1/bundle-products/options/add" method="POST">
         <service class="Magento\Bundle\Api\ProductOptionManagementInterface" method="save" />
         <resources>
             <resource ref="Magento_Catalog::products" />
         </resources>
     </route>
-    <route url="/V1/bundle-products/option/:optionId" method="PUT">
+    <route url="/V1/bundle-products/options/:optionId" method="PUT">
         <service class="Magento\Bundle\Api\ProductOptionManagementInterface" method="save" />
         <resources>
             <resource ref="Magento_Catalog::products" />
         </resources>
     </route>
-    <route url="/V1/bundle-products/:productSku/option/:optionId" method="DELETE">
+    <route url="/V1/bundle-products/:sku/options/:optionId" method="DELETE">
         <service class="Magento\Bundle\Api\ProductOptionRepositoryInterface" method="deleteById" />
         <resources>
             <resource ref="Magento_Catalog::products" />
diff --git a/app/code/Magento/Captcha/etc/config.xml b/app/code/Magento/Captcha/etc/config.xml
index ac0f4486c7456da6bc5e3b0b397d49b326368bcd..8c91d2c706f152873ceedd4c1da7ec8de75531d6 100644
--- a/app/code/Magento/Captcha/etc/config.xml
+++ b/app/code/Magento/Captcha/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <system>
             <media_storage_configuration>
diff --git a/app/code/Magento/Catalog/Api/CategoryLinkRepositoryInterface.php b/app/code/Magento/Catalog/Api/CategoryLinkRepositoryInterface.php
index d5d2500d4b1777ddbb09f8a4a4fcda67994af507..a84719da120793448d3a12d26d4606755a219f3a 100644
--- a/app/code/Magento/Catalog/Api/CategoryLinkRepositoryInterface.php
+++ b/app/code/Magento/Catalog/Api/CategoryLinkRepositoryInterface.php
@@ -34,12 +34,12 @@ interface CategoryLinkRepositoryInterface
     /**
      * Remove the product assignment from the category by category id and sku
      *
-     * @param string $productSku
-     * @param string $productSku
+     * @param string $sku
+     * @param string $sku
      * @return bool will returned True if products successfully deleted
      *
      * @throws \Magento\Framework\Exception\CouldNotSaveException
      * @throws \Magento\Framework\Exception\StateException
      */
-    public function deleteByIds($categoryId, $productSku);
+    public function deleteByIds($categoryId, $sku);
 }
diff --git a/app/code/Magento/Catalog/Api/Data/ProductAttributeMediaGalleryEntryInterface.php b/app/code/Magento/Catalog/Api/Data/ProductAttributeMediaGalleryEntryInterface.php
index 1d9a494a8958f04aab057c7a0cb72ebd06dc9107..1e7d37e4abd73bde244e69147e11aee2ebc48c71 100644
--- a/app/code/Magento/Catalog/Api/Data/ProductAttributeMediaGalleryEntryInterface.php
+++ b/app/code/Magento/Catalog/Api/Data/ProductAttributeMediaGalleryEntryInterface.php
@@ -12,9 +12,10 @@ interface ProductAttributeMediaGalleryEntryInterface
     const ID = 'id';
     const LABEL = 'label';
     const POSITION = 'position';
-    const DISABLED = 'is_disabled';
+    const DISABLED = 'disabled';
     const TYPES = 'types';
     const FILE = 'file';
+    const CONTENT = 'content';
 
     /**
      * Retrieve gallery entry ID
@@ -52,7 +53,7 @@ interface ProductAttributeMediaGalleryEntryInterface
      * @return int
      */
     public function getPosition();
-
+    
     /**
      * Set gallery entry position (sort order)
      *
@@ -65,17 +66,16 @@ interface ProductAttributeMediaGalleryEntryInterface
      * Check if gallery entry is hidden from product page
      *
      * @return bool
-     * @SuppressWarnings(PHPMD.BooleanGetMethodName)
      */
-    public function getIsDisabled();
+    public function isDisabled();
 
     /**
      * Set whether gallery entry is hidden from product page
      *
-     * @param bool $isDisabled
+     * @param bool $disabled
      * @return $this
      */
-    public function setIsDisabled($isDisabled);
+    public function setDisabled($disabled);
 
     /**
      * Retrieve gallery entry image types (thumbnail, image, small_image etc)
@@ -106,4 +106,19 @@ interface ProductAttributeMediaGalleryEntryInterface
      * @return $this
      */
     public function setFile($file);
+    
+    /**
+     * Get media gallery content
+     *
+     * @return \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface|null
+     */
+    public function getContent();
+    
+    /**
+     * Set media gallery content
+     *
+     * @param $content \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface
+     * @return $this 
+     */
+    public function setContent($content);
 }
diff --git a/app/code/Magento/Catalog/Api/Data/ProductCustomOptionInterface.php b/app/code/Magento/Catalog/Api/Data/ProductCustomOptionInterface.php
index 8a2183bf8e8cd61f095b8daf8a6fc97050dd5a9b..352df7305118b354b5a21e560d3bb0a48ace8376 100644
--- a/app/code/Magento/Catalog/Api/Data/ProductCustomOptionInterface.php
+++ b/app/code/Magento/Catalog/Api/Data/ProductCustomOptionInterface.php
@@ -18,10 +18,10 @@ interface ProductCustomOptionInterface
     /**
      * Set product SKU
      *
-     * @param string $productSku
+     * @param string $sku
      * @return $this
      */
-    public function setProductSku($productSku);
+    public function setProductSku($sku);
 
     /**
      * Get option id
diff --git a/app/code/Magento/Catalog/Api/Data/ProductLinkInterface.php b/app/code/Magento/Catalog/Api/Data/ProductLinkInterface.php
index ddf61179c1507b0b18198a09bf7694eb31265946..7e9d8c882ef35b088cc07d9b5dcf159d7250e873 100644
--- a/app/code/Magento/Catalog/Api/Data/ProductLinkInterface.php
+++ b/app/code/Magento/Catalog/Api/Data/ProductLinkInterface.php
@@ -18,10 +18,10 @@ interface ProductLinkInterface extends \Magento\Framework\Api\ExtensibleDataInte
     /**
      * Set product SKU
      *
-     * @param string $productSku
+     * @param string $sku
      * @return $this
      */
-    public function setProductSku($productSku);
+    public function setProductSku($sku);
 
     /**
      * Get link type
diff --git a/app/code/Magento/Catalog/Api/ProductAttributeMediaGalleryManagementInterface.php b/app/code/Magento/Catalog/Api/ProductAttributeMediaGalleryManagementInterface.php
index c0e4cd9b0d8fc44291a8f75f1bb2f3850cda35fa..2dfe8e5a30976dfeb65d37dd337bf73382d81093 100644
--- a/app/code/Magento/Catalog/Api/ProductAttributeMediaGalleryManagementInterface.php
+++ b/app/code/Magento/Catalog/Api/ProductAttributeMediaGalleryManagementInterface.php
@@ -16,26 +16,18 @@ interface ProductAttributeMediaGalleryManagementInterface
     /**
      * Create new gallery entry
      *
-     * @param string $productSku
-     * @param \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface $entry
-     * @param \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface $entryContent
-     * @param int $storeId
+     * @param \Magento\Catalog\Api\Data\ProductInterface $product
      * @return int gallery entry ID
      * @throws \Magento\Framework\Exception\InputException
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\StateException
      */
-    public function create(
-        $productSku,
-        \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface $entry,
-        \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface $entryContent,
-        $storeId = 0
-    );
+    public function create($product);
 
     /**
      * Update gallery entry
      *
-     * @param string $productSku
+     * @param string $sku
      * @param \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface $entry
      * @param int $storeId
      * @return bool
@@ -43,7 +35,7 @@ interface ProductAttributeMediaGalleryManagementInterface
      * @throws \Magento\Framework\Exception\StateException
      */
     public function update(
-        $productSku,
+        $sku,
         \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface $entry,
         $storeId = 0
     );
@@ -51,29 +43,29 @@ interface ProductAttributeMediaGalleryManagementInterface
     /**
      * Remove gallery entry
      *
-     * @param string $productSku
+     * @param string $sku
      * @param int $entryId
      * @return bool
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\StateException
      */
-    public function remove($productSku, $entryId);
+    public function remove($sku, $entryId);
 
     /**
      * Return information about gallery entry
      *
-     * @param string $productSku
+     * @param string $sku
      * @param int $imageId
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @return \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface
      */
-    public function get($productSku, $imageId);
+    public function get($sku, $imageId);
 
     /**
      * Retrieve the list of gallery entries associated with given product
      *
-     * @param string $productSku
+     * @param string $sku
      * @return \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface[]
      */
-    public function getList($productSku);
+    public function getList($sku);
 }
diff --git a/app/code/Magento/Catalog/Api/ProductCustomOptionRepositoryInterface.php b/app/code/Magento/Catalog/Api/ProductCustomOptionRepositoryInterface.php
index 1b2329931b1a9dceb34256716b58aad2c548e9a8..50b45a3b3dc8b283eaf8ea6431fb365814461b83 100644
--- a/app/code/Magento/Catalog/Api/ProductCustomOptionRepositoryInterface.php
+++ b/app/code/Magento/Catalog/Api/ProductCustomOptionRepositoryInterface.php
@@ -11,19 +11,19 @@ interface ProductCustomOptionRepositoryInterface
     /**
      * Get the list of custom options for a specific product
      *
-     * @param string $productSku
+     * @param string $sku
      * @return \Magento\Catalog\Api\Data\ProductCustomOptionInterface[]
      */
-    public function getList($productSku);
+    public function getList($sku);
 
     /**
      * Get custom option for a specific product
      *
-     * @param string $productSku
+     * @param string $sku
      * @param int $optionId
      * @return \Magento\Catalog\Api\Data\ProductCustomOptionInterface
      */
-    public function get($productSku, $optionId);
+    public function get($sku, $optionId);
 
     /**
      * Delete custom option from product
@@ -42,9 +42,9 @@ interface ProductCustomOptionRepositoryInterface
     public function save(\Magento\Catalog\Api\Data\ProductCustomOptionInterface $option);
 
     /**
-     * @param string $productSku
+     * @param string $sku
      * @param int $optionId
      * @return bool
      */
-    public function deleteByIdentifier($productSku, $optionId);
+    public function deleteByIdentifier($sku, $optionId);
 }
diff --git a/app/code/Magento/Catalog/Api/ProductGroupPriceManagementInterface.php b/app/code/Magento/Catalog/Api/ProductGroupPriceManagementInterface.php
index 7278ab50c342f3493457210e665a2cac4e2b5303..bbe7fdc66fd87a18b69c7b80658b96edc30b4a2a 100644
--- a/app/code/Magento/Catalog/Api/ProductGroupPriceManagementInterface.php
+++ b/app/code/Magento/Catalog/Api/ProductGroupPriceManagementInterface.php
@@ -12,32 +12,32 @@ interface ProductGroupPriceManagementInterface
     /**
      * Set group price for product
      *
-     * @param string $productSku
+     * @param string $sku
      * @param int $customerGroupId
      * @param float $price
      * @return boolean
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\CouldNotSaveException
      */
-    public function add($productSku, $customerGroupId, $price);
+    public function add($sku, $customerGroupId, $price);
 
     /**
      * Remove group price from product
      *
-     * @param string $productSku
+     * @param string $sku
      * @param int $customerGroupId
      * @return boolean
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\CouldNotSaveException
      */
-    public function remove($productSku, $customerGroupId);
+    public function remove($sku, $customerGroupId);
 
     /**
      * Retrieve list of product prices
      *
-     * @param string $productSku
+     * @param string $sku
      * @return \Magento\Catalog\Api\Data\ProductGroupPriceInterface[]
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      */
-    public function getList($productSku);
+    public function getList($sku);
 }
diff --git a/app/code/Magento/Catalog/Api/ProductLinkManagementInterface.php b/app/code/Magento/Catalog/Api/ProductLinkManagementInterface.php
index 3daf804de0af0c205a3ac4d02cd91006e99ea45c..ee2ef0f062eab8ea68eea1fa9045272deb4f18e3 100644
--- a/app/code/Magento/Catalog/Api/ProductLinkManagementInterface.php
+++ b/app/code/Magento/Catalog/Api/ProductLinkManagementInterface.php
@@ -11,21 +11,21 @@ interface ProductLinkManagementInterface
     /**
      * Provide the list of links for a specific product
      *
-     * @param string $productSku
+     * @param string $sku
      * @param string $type
      * @return \Magento\Catalog\Api\Data\ProductLinkInterface[]
      */
-    public function getLinkedItemsByType($productSku, $type);
+    public function getLinkedItemsByType($sku, $type);
 
     /**
      * Assign a product link to another product
      *
-     * @param string $productSku
+     * @param string $sku
      * @param string $type
      * @param \Magento\Catalog\Api\Data\ProductLinkInterface[] $items
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\CouldNotSaveException
      * @return bool
      */
-    public function setProductLinks($productSku, $type, array $items);
+    public function setProductLinks($sku, $type, array $items);
 }
diff --git a/app/code/Magento/Catalog/Api/ProductLinkRepositoryInterface.php b/app/code/Magento/Catalog/Api/ProductLinkRepositoryInterface.php
index 6af76811e585739e6e9469f82eabfcc3f4fcbef3..7b4d79d902b25835e6a28d09bb8622deef61f89f 100644
--- a/app/code/Magento/Catalog/Api/ProductLinkRepositoryInterface.php
+++ b/app/code/Magento/Catalog/Api/ProductLinkRepositoryInterface.php
@@ -32,12 +32,12 @@ interface ProductLinkRepositoryInterface
     public function delete(\Magento\Catalog\Api\Data\ProductLinkInterface $entity);
 
     /**
-     * @param string $productSku
+     * @param string $sku
      * @param string $type
      * @param string $linkedProductSku
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\CouldNotSaveException
      * @return bool
      */
-    public function deleteById($productSku, $type, $linkedProductSku);
+    public function deleteById($sku, $type, $linkedProductSku);
 }
diff --git a/app/code/Magento/Catalog/Api/ProductRepositoryInterface.php b/app/code/Magento/Catalog/Api/ProductRepositoryInterface.php
index bad476db4bc439ebe7fac316453722a6b30be650..8205f68fca6095f9d516c01f5ad04be1a8515725 100644
--- a/app/code/Magento/Catalog/Api/ProductRepositoryInterface.php
+++ b/app/code/Magento/Catalog/Api/ProductRepositoryInterface.php
@@ -24,13 +24,13 @@ interface ProductRepositoryInterface
     /**
      * Get info about product by product SKU
      *
-     * @param string $productSku
+     * @param string $sku
      * @param bool $editMode
      * @param null|int $storeId
      * @return \Magento\Catalog\Api\Data\ProductInterface
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      */
-    public function get($productSku, $editMode = false, $storeId = null);
+    public function get($sku, $editMode = false, $storeId = null);
 
     /**
      * Get info about product by product id
@@ -53,12 +53,12 @@ interface ProductRepositoryInterface
     public function delete(\Magento\Catalog\Api\Data\ProductInterface $product);
 
     /**
-     * @param string $productSku
+     * @param string $sku
      * @return bool Will returned True if deleted
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\StateException
      */
-    public function deleteById($productSku);
+    public function deleteById($sku);
 
     /**
      * Get product list
diff --git a/app/code/Magento/Catalog/Api/ProductTierPriceManagementInterface.php b/app/code/Magento/Catalog/Api/ProductTierPriceManagementInterface.php
index 1f9dea7edc06e66a7bd0d09ab747867b9fc159db..c8e3a5361e72acfe0ca9e68ac64ed934037e52df 100644
--- a/app/code/Magento/Catalog/Api/ProductTierPriceManagementInterface.php
+++ b/app/code/Magento/Catalog/Api/ProductTierPriceManagementInterface.php
@@ -11,7 +11,7 @@ interface ProductTierPriceManagementInterface
     /**
      * Create tier price for product
      *
-     * @param string $productSku
+     * @param string $sku
      * @param string $customerGroupId
      * @param float $price
      * @param float $qty
@@ -19,27 +19,27 @@ interface ProductTierPriceManagementInterface
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\CouldNotSaveException
      */
-    public function add($productSku, $customerGroupId, $price, $qty);
+    public function add($sku, $customerGroupId, $price, $qty);
 
     /**
      * Remove tire price from product
      *
-     * @param string $productSku
+     * @param string $sku
      * @param string $customerGroupId
      * @param float $qty
      * @return boolean
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\CouldNotSaveException
      */
-    public function remove($productSku, $customerGroupId, $qty);
+    public function remove($sku, $customerGroupId, $qty);
 
     /**
      * Get tire price of product
      *
-     * @param string $productSku
+     * @param string $sku
      * @param string $customerGroupId
      * @return \Magento\Catalog\Api\Data\ProductTierPriceInterface[]
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      */
-    public function getList($productSku, $customerGroupId);
+    public function getList($sku, $customerGroupId);
 }
diff --git a/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php b/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php
index 09c968830b1e8aeb78e6a6759634efd12e2a872b..26665c88a5f2fef3e5f49a91dee577a14a0e6415 100644
--- a/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php
+++ b/app/code/Magento/Catalog/Controller/Adminhtml/Product/MassStatus.php
@@ -74,7 +74,7 @@ class MassStatus extends \Magento\Catalog\Controller\Adminhtml\Product
                 ->updateAttributes($productIds, ['status' => $status], $storeId);
             $this->messageManager->addSuccess(__('A total of %1 record(s) have been updated.', count($productIds)));
             $this->_productPriceIndexerProcessor->reindexList($productIds);
-        } catch (\Magento\Core\Model\Exception $e) {
+        } catch (\Magento\Framework\Exception $e) {
             $this->messageManager->addError($e->getMessage());
         } catch (\Magento\Framework\Exception\LocalizedException $e) {
             $this->messageManager->addError($e->getMessage());
diff --git a/app/code/Magento/Catalog/Model/CategoryLinkRepository.php b/app/code/Magento/Catalog/Model/CategoryLinkRepository.php
index 23f40ce3c9313bfc06b3cbf9f0f611edb2af5c65..771c54e46518e565848eb15271b5d54bac7517fc 100644
--- a/app/code/Magento/Catalog/Model/CategoryLinkRepository.php
+++ b/app/code/Magento/Catalog/Model/CategoryLinkRepository.php
@@ -70,10 +70,10 @@ class CategoryLinkRepository implements \Magento\Catalog\Api\CategoryLinkReposit
     /**
      * {@inheritdoc}
      */
-    public function deleteByIds($categoryId, $productSku)
+    public function deleteByIds($categoryId, $sku)
     {
         $category = $this->categoryRepository->get($categoryId);
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         $productPositions = $category->getProductsPosition();
 
         $productID = $product->getId();
diff --git a/app/code/Magento/Catalog/Model/Product/Gallery/Entry.php b/app/code/Magento/Catalog/Model/Product/Gallery/Entry.php
index 116899bda07e86a3128494e4a134f45a687ee99e..3331ee24d7ee6415ef67e0ed4fdbc3aa0e266ccc 100644
--- a/app/code/Magento/Catalog/Model/Product/Gallery/Entry.php
+++ b/app/code/Magento/Catalog/Model/Product/Gallery/Entry.php
@@ -46,9 +46,8 @@ class Entry extends \Magento\Framework\Model\AbstractExtensibleModel implements
      * Check if gallery entry is hidden from product page
      *
      * @return bool
-     * @SuppressWarnings(PHPMD.BooleanGetMethodName)
      */
-    public function getIsDisabled()
+    public function isDisabled()
     {
         return $this->getData(self::DISABLED);
     }
@@ -73,6 +72,14 @@ class Entry extends \Magento\Framework\Model\AbstractExtensibleModel implements
         return $this->getData(self::FILE);
     }
 
+    /**
+     * @return \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface|null
+     */
+    public function getContent()
+    {
+        return $this->getData(self::CONTENT);
+    }
+
     /**
      * Set gallery entry alternative text
      *
@@ -98,12 +105,12 @@ class Entry extends \Magento\Framework\Model\AbstractExtensibleModel implements
     /**
      * Set whether gallery entry is hidden from product page
      *
-     * @param bool $isDisabled
+     * @param bool $disabled
      * @return $this
      */
-    public function setIsDisabled($isDisabled)
+    public function setDisabled($disabled)
     {
-        return $this->setData(self::DISABLED, $isDisabled);
+        return $this->setData(self::DISABLED, $disabled);
     }
 
     /**
@@ -127,4 +134,15 @@ class Entry extends \Magento\Framework\Model\AbstractExtensibleModel implements
     {
         return $this->setData(self::FILE, $file);
     }
+
+    /**
+     * Set media gallery content
+     *
+     * @param $content \Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface
+     * @return $this
+     */
+    public function setContent($content)
+    {
+        return $this->setData(self::CONTENT, $content);
+    }
 }
diff --git a/app/code/Magento/Catalog/Model/Product/Gallery/GalleryManagement.php b/app/code/Magento/Catalog/Model/Product/Gallery/GalleryManagement.php
index 7a9302300cea955e89fdc871a70f60c6025d8c61..f161a7d4ad56c28923853c37029afea0658a3ee2 100644
--- a/app/code/Magento/Catalog/Model/Product/Gallery/GalleryManagement.php
+++ b/app/code/Magento/Catalog/Model/Product/Gallery/GalleryManagement.php
@@ -6,14 +6,13 @@
  */
 namespace Magento\Catalog\Model\Product\Gallery;
 
-use Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface as ContentInterface;
 use Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface;
 use Magento\Catalog\Api\Data\ProductInterface as Product;
 use Magento\Catalog\Model\Product\Media\Config as MediaConfig;
+use Magento\Framework\App\Filesystem\DirectoryList;
 use Magento\Framework\Exception\InputException;
 use Magento\Framework\Exception\NoSuchEntityException;
 use Magento\Framework\Exception\StateException;
-use Magento\Framework\App\Filesystem\DirectoryList;
 
 /**
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
@@ -154,21 +153,21 @@ class GalleryManagement implements \Magento\Catalog\Api\ProductAttributeMediaGal
     /**
      * {@inheritdoc}
      */
-    public function create(
-        $productSku,
-        ProductAttributeMediaGalleryEntryInterface $entry,
-        ContentInterface $entryContent,
-        $storeId = 0
-    ) {
+    public function create($product)
+    {
         try {
-            $this->storeManager->getStore($storeId);
+            $this->storeManager->getStore($product->getStoreId());
         } catch (\Exception $exception) {
             throw new NoSuchEntityException('There is no store with provided ID.');
         }
+        /** @var $entry ProductAttributeMediaGalleryEntryInterface */
+        $entry = $product->getCustomAttribute('media_gallery')->getValue();
+        $entryContent = $entry->getContent();
+
         if (!$this->contentValidator->isValid($entryContent)) {
             throw new InputException('The image content is not valid.');
         }
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($product->getSku());
 
         $fileContent = @base64_decode($entryContent->getEntryData(), true);
         $mediaTmpPath = $this->mediaConfig->getBaseTmpMediaPath();
@@ -186,15 +185,18 @@ class GalleryManagement implements \Magento\Catalog\Api\ProductAttributeMediaGal
             $absoluteFilePath,
             $entry->getTypes(),
             true,
-            $entry->getIsDisabled()
+            $entry->isDisabled()
         );
         // Update additional fields that are still empty after addImage call
-        $productMediaGallery->updateImage($product, $imageFileUri, [
+        $productMediaGallery->updateImage(
+            $product,
+            $imageFileUri,
+            [
                 'label' => $entry->getLabel(),
                 'position' => $entry->getPosition(),
-                'disabled' => $entry->getIsDisabled(),
-            ]);
-        $product->setStoreId($storeId);
+                'disabled' => $entry->isDisabled(),
+            ]
+        );
 
         try {
             $this->productRepository->save($product);
@@ -213,14 +215,14 @@ class GalleryManagement implements \Magento\Catalog\Api\ProductAttributeMediaGal
     /**
      * {@inheritdoc}
      */
-    public function update($productSku, ProductAttributeMediaGalleryEntryInterface $entry, $storeId = 0)
+    public function update($sku, ProductAttributeMediaGalleryEntryInterface $entry, $storeId = 0)
     {
         try {
             $this->storeManager->getStore($storeId);
         } catch (\Exception $exception) {
             throw new NoSuchEntityException('There is no store with provided ID.');
         }
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         /** @var $productMediaGallery \Magento\Catalog\Model\Product\Attribute\Backend\Media */
         $productMediaGallery = $this->getGalleryAttributeBackend($product);
         $filePath = $this->entryResolver->getEntryFilePathById($product, $entry->getId());
@@ -228,11 +230,15 @@ class GalleryManagement implements \Magento\Catalog\Api\ProductAttributeMediaGal
             throw new NoSuchEntityException('There is no image with provided ID.');
         }
 
-        $productMediaGallery->updateImage($product, $filePath, [
-            'label' => $entry->getLabel(),
-            'position' => $entry->getPosition(),
-            'disabled' => $entry->getIsDisabled(),
-        ]);
+        $productMediaGallery->updateImage(
+            $product,
+            $filePath,
+            [
+                'label' => $entry->getLabel(),
+                'position' => $entry->getPosition(),
+                'disabled' => $entry->isDisabled(),
+            ]
+        );
         $productMediaGallery->clearMediaAttribute($product, array_keys($product->getMediaAttributes()));
         $productMediaGallery->setMediaAttribute($product, $entry->getTypes(), $filePath);
         $product->setStoreId($storeId);
@@ -248,9 +254,9 @@ class GalleryManagement implements \Magento\Catalog\Api\ProductAttributeMediaGal
     /**
      * {@inheritdoc}
      */
-    public function remove($productSku, $entryId)
+    public function remove($sku, $entryId)
     {
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         /** @var $productMediaGallery \Magento\Catalog\Model\Product\Attribute\Backend\Media */
         $productMediaGallery = $this->getGalleryAttributeBackend($product);
         $filePath = $this->entryResolver->getEntryFilePathById($product, $entryId);
@@ -266,10 +272,10 @@ class GalleryManagement implements \Magento\Catalog\Api\ProductAttributeMediaGal
     /**
      * {@inheritdoc}
      */
-    public function get($productSku, $imageId)
+    public function get($sku, $imageId)
     {
         try {
-            $product = $this->productRepository->get($productSku);
+            $product = $this->productRepository->get($sku);
         } catch (\Exception $exception) {
             throw new NoSuchEntityException("Such product doesn't exist");
         }
@@ -298,11 +304,11 @@ class GalleryManagement implements \Magento\Catalog\Api\ProductAttributeMediaGal
     /**
      * {@inheritdoc}
      */
-    public function getList($productSku)
+    public function getList($sku)
     {
         $result = [];
         /** @var \Magento\Catalog\Model\Product $product */
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
 
         /** @var \Magento\Catalog\Api\Data\ProductAttributeInterface $galleryAttribute */
         $galleryAttribute = $this->attributeRepository->get('media_gallery');
@@ -318,7 +324,7 @@ class GalleryManagement implements \Magento\Catalog\Api\ProductAttributeMediaGal
             $entry->setId($image['value_id'])
                 ->setLabel($image['label_default'])
                 ->setTypes(array_keys($productImages, $image['file']))
-                ->setIsDisabled($image['disabled_default'])
+                ->setDisabled($image['disabled_default'])
                 ->setPosition($image['position_default'])
                 ->setFile($image['file']);
             $result[] = $entry;
diff --git a/app/code/Magento/Catalog/Model/Product/GroupPriceManagement.php b/app/code/Magento/Catalog/Model/Product/GroupPriceManagement.php
index 82d4985cdab134586f2823199469a082e8003eb7..0e689e4b69e3f4fe4c5eedbd04e6c19f413e306c 100644
--- a/app/code/Magento/Catalog/Model/Product/GroupPriceManagement.php
+++ b/app/code/Magento/Catalog/Model/Product/GroupPriceManagement.php
@@ -72,13 +72,13 @@ class GroupPriceManagement implements \Magento\Catalog\Api\ProductGroupPriceMana
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function add($productSku, $customerGroupId, $price)
+    public function add($sku, $customerGroupId, $price)
     {
         if (!\Zend_Validate::is($price, 'Float') || $price <= 0 || !\Zend_Validate::is($price, 'Float')) {
             throw new InputException('Please provide valid data');
         }
         $customerGroup = $this->groupRepository->getById($customerGroupId);
-        $product = $this->productRepository->get($productSku, true);
+        $product = $this->productRepository->get($sku, true);
         $groupPrices = $product->getData('group_price');
         $websiteIdentifier = 0;
         $value = $this->config->getValue('catalog/price/scope', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE);
@@ -122,9 +122,9 @@ class GroupPriceManagement implements \Magento\Catalog\Api\ProductGroupPriceMana
     /**
      * {@inheritdoc}
      */
-    public function remove($productSku, $customerGroupId)
+    public function remove($sku, $customerGroupId)
     {
-        $product = $this->productRepository->get($productSku, true);
+        $product = $this->productRepository->get($sku, true);
         $websiteIdentifier = 0;
         $value = $this->config->getValue('catalog/price/scope', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE);
         if ($value != 0) {
@@ -137,9 +137,9 @@ class GroupPriceManagement implements \Magento\Catalog\Api\ProductGroupPriceMana
     /**
      * {@inheritdoc}
      */
-    public function getList($productSku, $websiteId = null)
+    public function getList($sku, $websiteId = null)
     {
-        $product = $this->productRepository->get($productSku, true);
+        $product = $this->productRepository->get($sku, true);
         $priceKey = 'website_price';
         $value = $this->config->getValue('catalog/price/scope', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE);
         if ($value == 0) {
diff --git a/app/code/Magento/Catalog/Model/Product/Option/Repository.php b/app/code/Magento/Catalog/Model/Product/Option/Repository.php
index 936b6569c44ecb851b59c12daf50cba9f3951e1a..e23481aafe81bbb6da8bacd42f4a7f60fdbe8d38 100644
--- a/app/code/Magento/Catalog/Model/Product/Option/Repository.php
+++ b/app/code/Magento/Catalog/Model/Product/Option/Repository.php
@@ -44,18 +44,18 @@ class Repository implements \Magento\Catalog\Api\ProductCustomOptionRepositoryIn
     /**
      * {@inheritdoc}
      */
-    public function getList($productSku)
+    public function getList($sku)
     {
-        $product = $this->productRepository->get($productSku, true);
+        $product = $this->productRepository->get($sku, true);
         return $product->getOptions();
     }
 
     /**
      * {@inheritdoc}
      */
-    public function get($productSku, $optionId)
+    public function get($sku, $optionId)
     {
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         $option = $product->getOptionById($optionId);
         if (is_null($option)) {
             throw NoSuchEntityException::singleField('optionId', $optionId);
@@ -77,8 +77,8 @@ class Repository implements \Magento\Catalog\Api\ProductCustomOptionRepositoryIn
      */
     public function save(\Magento\Catalog\Api\Data\ProductCustomOptionInterface $option)
     {
-        $productSku = $option->getProductSku();
-        $product = $this->productRepository->get($productSku, true);
+        $sku = $option->getProductSku();
+        $product = $this->productRepository->get($sku, true);
         $optionData = $this->converter->toArray($option);
         if ($option->getOptionId()) {
             if (!$product->getOptionById($option->getOptionId())) {
@@ -100,7 +100,7 @@ class Repository implements \Magento\Catalog\Api\ProductCustomOptionRepositoryIn
             throw new CouldNotSaveException('Could not save product option');
         }
 
-        $product = $this->productRepository->get($productSku, true);
+        $product = $this->productRepository->get($sku, true);
         if (!$option->getOptionId()) {
             $currentOptions = $product->getOptions();
 
@@ -112,16 +112,16 @@ class Repository implements \Magento\Catalog\Api\ProductCustomOptionRepositoryIn
         } else {
             $newID = $option->getOptionId();
         }
-        $option = $this->get($productSku, $newID);
+        $option = $this->get($sku, $newID);
         return $option;
     }
 
     /**
      * {@inheritdoc}
      */
-    public function deleteByIdentifier($productSku, $optionId)
+    public function deleteByIdentifier($sku, $optionId)
     {
-        $product = $this->productRepository->get($productSku, true);
+        $product = $this->productRepository->get($sku, true);
         $options = $product->getOptions();
         $option = $product->getOptionById($optionId);
         if (is_null($option)) {
diff --git a/app/code/Magento/Catalog/Model/Product/TierPriceManagement.php b/app/code/Magento/Catalog/Model/Product/TierPriceManagement.php
index e0e4c1695bb786171e377df14fcb73c3240ab628..0c0ed5d54b4e74cdca2369ae9f27a91a10490b2c 100644
--- a/app/code/Magento/Catalog/Model/Product/TierPriceManagement.php
+++ b/app/code/Magento/Catalog/Model/Product/TierPriceManagement.php
@@ -85,12 +85,12 @@ class TierPriceManagement implements \Magento\Catalog\Api\ProductTierPriceManage
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function add($productSku, $customerGroupId, $price, $qty)
+    public function add($sku, $customerGroupId, $price, $qty)
     {
         if (!\Zend_Validate::is($price, 'Float') || $price <= 0 || !\Zend_Validate::is($qty, 'Float') || $qty <= 0) {
             throw new InputException('Please provide valid data');
         }
-        $product = $this->productRepository->get($productSku, ['edit_mode' => true]);
+        $product = $this->productRepository->get($sku, ['edit_mode' => true]);
         $tierPrices = $product->getData('tier_price');
         $websiteIdentifier = 0;
         $value = $this->config->getValue('catalog/price/scope', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE);
@@ -145,9 +145,9 @@ class TierPriceManagement implements \Magento\Catalog\Api\ProductTierPriceManage
     /**
      * {@inheritdoc}
      */
-    public function remove($productSku, $customerGroupId, $qty)
+    public function remove($sku, $customerGroupId, $qty)
     {
-        $product = $this->productRepository->get($productSku, ['edit_mode' => true]);
+        $product = $this->productRepository->get($sku, ['edit_mode' => true]);
         $websiteIdentifier = 0;
         $value = $this->config->getValue('catalog/price/scope', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE);
         if ($value != 0) {
@@ -160,9 +160,9 @@ class TierPriceManagement implements \Magento\Catalog\Api\ProductTierPriceManage
     /**
      * {@inheritdoc}
      */
-    public function getList($productSku, $customerGroupId)
+    public function getList($sku, $customerGroupId)
     {
-        $product = $this->productRepository->get($productSku, ['edit_mode' => true]);
+        $product = $this->productRepository->get($sku, ['edit_mode' => true]);
 
         $priceKey = 'website_price';
         $value = $this->config->getValue('catalog/price/scope', \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE);
diff --git a/app/code/Magento/Catalog/Model/ProductLink/Management.php b/app/code/Magento/Catalog/Model/ProductLink/Management.php
index b6d64659e3963c94cbbe52c633a7130541dea79c..4f065bbd5b359153c0d048d74e04993be0f7979b 100644
--- a/app/code/Magento/Catalog/Model/ProductLink/Management.php
+++ b/app/code/Magento/Catalog/Model/ProductLink/Management.php
@@ -70,10 +70,10 @@ class Management implements \Magento\Catalog\Api\ProductLinkManagementInterface
     /**
      * {@inheritdoc}
      */
-    public function getLinkedItemsByType($productSku, $type)
+    public function getLinkedItemsByType($sku, $type)
     {
         $output = [];
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         try {
             $collection = $this->entityCollectionProvider->getCollection($product, $type);
         } catch (NoSuchEntityException $e) {
@@ -103,7 +103,7 @@ class Management implements \Magento\Catalog\Api\ProductLinkManagementInterface
     /**
      * {@inheritdoc}
      */
-    public function setProductLinks($productSku, $type, array $items)
+    public function setProductLinks($sku, $type, array $items)
     {
         $linkTypes = $this->linkTypeProvider->getLinkTypes();
 
@@ -113,7 +113,7 @@ class Management implements \Magento\Catalog\Api\ProductLinkManagementInterface
             );
         }
 
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         $assignedSkuList = [];
         /** @var \Magento\Catalog\Api\Data\ProductLinkInterface $link */
         foreach ($items as $link) {
diff --git a/app/code/Magento/Catalog/Model/ProductLink/Repository.php b/app/code/Magento/Catalog/Model/ProductLink/Repository.php
index 0b18b48b82ca19522f1ad198148a329034e6e21f..800e7888c161df72985de30059fd7d68b140a868 100644
--- a/app/code/Magento/Catalog/Model/ProductLink/Repository.php
+++ b/app/code/Magento/Catalog/Model/ProductLink/Repository.php
@@ -108,9 +108,9 @@ class Repository implements \Magento\Catalog\Api\ProductLinkRepositoryInterface
     /**
      * {@inheritdoc}
      */
-    public function deleteById($productSku, $type, $linkedProductSku)
+    public function deleteById($sku, $type, $linkedProductSku)
     {
-        $linkItems = $this->linkManagement->getLinkedItemsByType($productSku, $type);
+        $linkItems = $this->linkManagement->getLinkedItemsByType($sku, $type);
         /** @var \Magento\Catalog\Api\Data\ProductLinkInterface $linkItem */
         foreach ($linkItems as $linkItem) {
             if ($linkItem->getLinkedProductSku() == $linkedProductSku) {
@@ -120,7 +120,7 @@ class Repository implements \Magento\Catalog\Api\ProductLinkRepositoryInterface
         throw new NoSuchEntityException(
             'Product %s doesn\'t have linked %s as %s',
             [
-                $productSku,
+                $sku,
                 $linkedProductSku,
                 $type
             ]
diff --git a/app/code/Magento/Catalog/Model/ProductRepository.php b/app/code/Magento/Catalog/Model/ProductRepository.php
index c401e56db17c410b16b49a4e8d201f9b598d02b6..ffb6efb3f304d4fb095a03700ebdf5a676735165 100644
--- a/app/code/Magento/Catalog/Model/ProductRepository.php
+++ b/app/code/Magento/Catalog/Model/ProductRepository.php
@@ -242,14 +242,14 @@ class ProductRepository implements \Magento\Catalog\Api\ProductRepositoryInterfa
      */
     public function delete(\Magento\Catalog\Api\Data\ProductInterface $product)
     {
-        $productSku = $product->getSku();
+        $sku = $product->getSku();
         $productId = $product->getId();
         try {
             $this->resourceModel->delete($product);
         } catch (\Exception $e) {
-            throw new \Magento\Framework\Exception\StateException('Unable to remove product ' . $productSku);
+            throw new \Magento\Framework\Exception\StateException('Unable to remove product ' . $sku);
         }
-        unset($this->instances[$productSku]);
+        unset($this->instances[$sku]);
         unset($this->instancesById[$productId]);
         return true;
     }
@@ -257,9 +257,9 @@ class ProductRepository implements \Magento\Catalog\Api\ProductRepositoryInterfa
     /**
      * {@inheritdoc}
      */
-    public function deleteById($productSku)
+    public function deleteById($sku)
     {
-        $product = $this->get($productSku);
+        $product = $this->get($sku);
         return $this->delete($product);
     }
 
diff --git a/app/code/Magento/Catalog/Test/Unit/Model/Product/Gallery/GalleryManagementTest.php b/app/code/Magento/Catalog/Test/Unit/Model/Product/Gallery/GalleryManagementTest.php
index 1d5e2965e56891741975efd17a09321020095e1f..8da00cc15b23018240ae436100afdefd3019671e 100644
--- a/app/code/Magento/Catalog/Test/Unit/Model/Product/Gallery/GalleryManagementTest.php
+++ b/app/code/Magento/Catalog/Test/Unit/Model/Product/Gallery/GalleryManagementTest.php
@@ -4,6 +4,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Catalog\Test\Unit\Model\Product\Gallery;
 
 class GalleryManagementTest extends \PHPUnit_Framework_TestCase
@@ -68,6 +71,11 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
      */
     protected $dataObjectHelperMock;
 
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject|\Magento\Framework\Api\AttributeValue
+     */
+    protected $attributeValueMock;
+
     protected function setUp()
     {
         $this->storeManagerMock = $this->getMock('\Magento\Store\Model\StoreManagerInterface');
@@ -108,7 +116,17 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
         );
         $this->productMock = $this->getMock(
             '\Magento\Catalog\Model\Product',
-            ['getTypeInstance', 'getSetAttributes', 'setStoreId', 'getMediaAttributes', 'getMediaGallery', 'getData'],
+            [
+                'getTypeInstance',
+                'getSetAttributes',
+                'setStoreId',
+                'getMediaAttributes',
+                'getMediaGallery',
+                'getData',
+                'getStoreId',
+                'getSku',
+                'getCustomAttribute'
+            ],
             [],
             '',
             false
@@ -125,6 +143,9 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
             $this->mediaGalleryMock,
             $this->dataObjectHelperMock
         );
+        $this->attributeValueMock = $this->getMockBuilder('\Magento\Framework\Api\AttributeValue')
+            ->disableOriginalConstructor()
+            ->getMock();
     }
 
     /**
@@ -133,16 +154,9 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
      */
     public function testCreateWithNoStoreException()
     {
-        $productSku = 'mediaProduct';
-        $storeId = 0;
-        $entryMock = $this->getMock('\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface');
-        $entryContentMock = $this->getMock(
-            '\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface'
-        );
-        $this->storeManagerMock->expects($this->once())->method('getStore')->with($storeId)
+        $this->storeManagerMock->expects($this->once())->method('getStore')
             ->willThrowException(new \Exception());
-        $this->entryResolverMock->expects($this->never())->method('getEntryIdByFilePath');
-        $this->model->create($productSku, $entryMock, $entryContentMock, $storeId);
+        $this->model->create($this->productMock);
     }
 
     /**
@@ -151,17 +165,26 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
      */
     public function testCreateWithInvalidImageException()
     {
-        $productSku = 'mediaProduct';
-        $storeId = 0;
         $entryMock = $this->getMock('\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface');
         $entryContentMock = $this->getMock(
             '\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface'
         );
+        $entryMock->expects($this->any())->method('getContent')->willReturn($entryContentMock);
+        $this->attributeValueMock->expects($this->any())->method('getValue')->willReturn($entryMock);
+
+        $storeId = 0;
+        $this->productMock->expects($this->any())->method('getStoreId')->willReturn($storeId);
+        $this->productMock->expects($this->any())
+            ->method('getCustomAttribute')
+            ->with('media_gallery')
+            ->willReturn($this->attributeValueMock);
+
         $this->storeManagerMock->expects($this->once())->method('getStore')->with($storeId);
         $this->contentValidatorMock->expects($this->once())->method('isValid')->with($entryContentMock)
             ->willReturn(false);
         $this->entryResolverMock->expects($this->never())->method('getEntryIdByFilePath');
-        $this->model->create($productSku, $entryMock, $entryContentMock, $storeId);
+
+        $this->model->create($this->productMock);
     }
 
     /**
@@ -171,11 +194,24 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
     public function testCreateWithProductWithoutImagesSupport()
     {
         $productSku = 'mediaProduct';
-        $storeId = 0;
         $entryMock = $this->getMock('\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface');
         $entryContentMock = $this->getMock(
             '\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface'
         );
+        $entryMock->expects($this->any())->method('getContent')->willReturn($entryContentMock);
+        $this->attributeValueMock->expects($this->any())->method('getValue')->willReturn($entryMock);
+
+        $storeId = 0;
+        $this->productMock->expects($this->any())->method('getStoreId')->willReturn($storeId);
+        $this->productMock->expects($this->any())->method('getSku')->willReturn($productSku);
+        $this->productMock->expects($this->any())
+            ->method('getCustomAttribute')
+            ->with('media_gallery')
+            ->willReturn($this->attributeValueMock);
+
+        $this->storeManagerMock->expects($this->once())->method('getStore')->with($storeId);
+        $this->entryResolverMock->expects($this->never())->method('getEntryIdByFilePath');
+
         $writeInterfaceMock = $this->getMock('\Magento\Framework\Filesystem\Directory\WriteInterface');
         $entryData = 'entryData';
         $mediaTmpPath = '/media/tmp/path';
@@ -200,7 +236,7 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
         $this->productMock->expects($this->once())->method('getSetAttributes')->with($this->productMock)
             ->willReturn([]);
         $this->entryResolverMock->expects($this->never())->method('getEntryIdByFilePath');
-        $this->model->create($productSku, $entryMock, $entryContentMock, $storeId);
+        $this->model->create($this->productMock);
     }
 
     /**
@@ -210,13 +246,23 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
     public function testCreateWithCannotSaveException()
     {
         $productSku = 'mediaProduct';
-        $storeId = 0;
-        $entryPosition = 'entryPosition';
-        $absolutePath = 'absolute/path';
         $entryMock = $this->getMock('\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface');
         $entryContentMock = $this->getMock(
             '\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface'
         );
+        $entryMock->expects($this->any())->method('getContent')->willReturn($entryContentMock);
+        $this->attributeValueMock->expects($this->any())->method('getValue')->willReturn($entryMock);
+
+        $storeId = 0;
+        $this->productMock->expects($this->any())->method('getStoreId')->willReturn($storeId);
+        $this->productMock->expects($this->any())->method('getSku')->willReturn($productSku);
+        $this->productMock->expects($this->any())
+            ->method('getCustomAttribute')
+            ->with('media_gallery')
+            ->willReturn($this->attributeValueMock);
+
+        $entryPosition = 'entryPosition';
+        $absolutePath = 'absolute/path';
         $productMediaGalleryMock = $this->getMock(
             '\Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend',
             ['addImage', 'updateImage'],
@@ -252,7 +298,7 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
             ->willReturn(['media_gallery' => $attributeMock]);
         $attributeMock->expects($this->once())->method('getBackend')->willReturn($productMediaGalleryMock);
         $entryMock->expects($this->once())->method('getTypes')->willReturn(['jpg']);
-        $entryMock->expects($this->exactly(2))->method('getIsDisabled')->willReturn(false);
+        $entryMock->expects($this->exactly(2))->method('isDisabled')->willReturn(false);
         $entryMock->expects($this->once())->method('getPosition')->willReturn($entryPosition);
         $entryMock->expects($this->once())->method('getLabel')->willReturn('entryLabel');
         $productMediaGalleryMock->expects($this->once())->method('addImage')->with(
@@ -271,23 +317,33 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
                 'disabled' => false
             ]
         );
-        $this->productMock->expects($this->once())->method('setStoreId')->with($storeId);
         $this->productRepositoryMock->expects($this->once())->method('save')->with($this->productMock)
             ->willThrowException(new \Exception());
         $this->entryResolverMock->expects($this->never())->method('getEntryIdByFilePath');
-        $this->model->create($productSku, $entryMock, $entryContentMock, $storeId);
+        $this->model->create($this->productMock);
     }
 
     public function testCreate()
     {
         $productSku = 'mediaProduct';
-        $storeId = 0;
-        $entryPosition = 'entryPosition';
-        $absolutePath = 'absolute/path';
         $entryMock = $this->getMock('\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface');
         $entryContentMock = $this->getMock(
             '\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryContentInterface'
         );
+        $entryMock->expects($this->any())->method('getContent')->willReturn($entryContentMock);
+        $this->attributeValueMock->expects($this->any())->method('getValue')->willReturn($entryMock);
+
+        $storeId = 0;
+        $this->productMock->expects($this->any())->method('getStoreId')->willReturn($storeId);
+        $this->productMock->expects($this->any())->method('getSku')->willReturn($productSku);
+        $this->productMock->expects($this->any())
+            ->method('getCustomAttribute')
+            ->with('media_gallery')
+            ->willReturn($this->attributeValueMock);
+
+        $entryPosition = 'entryPosition';
+        $absolutePath = 'absolute/path';
+
         $productMediaGalleryMock = $this->getMock(
             '\Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend',
             ['addImage', 'updateImage', 'getRenamedImage'],
@@ -323,7 +379,7 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
             ->willReturn(['media_gallery' => $attributeMock]);
         $attributeMock->expects($this->once())->method('getBackend')->willReturn($productMediaGalleryMock);
         $entryMock->expects($this->once())->method('getTypes')->willReturn(['jpg']);
-        $entryMock->expects($this->exactly(2))->method('getIsDisabled')->willReturn(false);
+        $entryMock->expects($this->exactly(2))->method('isDisabled')->willReturn(false);
         $entryMock->expects($this->once())->method('getPosition')->willReturn($entryPosition);
         $entryMock->expects($this->once())->method('getLabel')->willReturn('entryLabel');
         $productMediaGalleryMock->expects($this->once())->method('addImage')->with(
@@ -342,7 +398,6 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
                 'disabled' => false
             ]
         );
-        $this->productMock->expects($this->once())->method('setStoreId')->with($storeId);
         $this->productRepositoryMock->expects($this->once())->method('save')->with($this->productMock);
         $writeInterfaceMock->expects($this->once())->method('delete')->with($relativeFilePath);
         $productMediaGalleryMock->expects($this->once())->method('getRenamedImage')->with($imageFileUri)
@@ -351,7 +406,7 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
             $this->productMock,
             'renamed'
         )->willReturn(42);
-        $this->assertEquals(42, $this->model->create($productSku, $entryMock, $entryContentMock, $storeId));
+        $this->assertEquals(42, $this->model->create($this->productMock));
     }
 
     /**
@@ -430,7 +485,7 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
         $entryMock->expects($this->once())->method('getId')->willReturn($entryId);
         $this->entryResolverMock->expects($this->once())->method('getEntryFilePathById')
             ->with($this->productMock, $entryId)->willReturn($filePath);
-        $entryMock->expects($this->once())->method('getIsDisabled')->willReturn(false);
+        $entryMock->expects($this->once())->method('isDisabled')->willReturn(false);
         $entryMock->expects($this->once())->method('getPosition')->willReturn($entryPosition);
         $entryMock->expects($this->once())->method('getLabel')->willReturn('entryLabel');
         $productMediaGalleryMock->expects($this->once())->method('updateImage')->with(
@@ -485,7 +540,7 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
         $entryMock->expects($this->once())->method('getId')->willReturn($entryId);
         $this->entryResolverMock->expects($this->once())->method('getEntryFilePathById')
             ->with($this->productMock, $entryId)->willReturn($filePath);
-        $entryMock->expects($this->once())->method('getIsDisabled')->willReturn(false);
+        $entryMock->expects($this->once())->method('isDisabled')->willReturn(false);
         $entryMock->expects($this->once())->method('getPosition')->willReturn($entryPosition);
         $entryMock->expects($this->once())->method('getLabel')->willReturn('entryLabel');
         $productMediaGalleryMock->expects($this->once())->method('updateImage')->with(
@@ -640,7 +695,7 @@ class GalleryManagementTest extends \PHPUnit_Framework_TestCase
             ->with($gallery[0]['label_default'])->willReturnSelf();
         $entryMock->expects($this->once())->method('setTypes')
             ->with([])->willReturnSelf();
-        $entryMock->expects($this->once())->method('setIsDisabled')
+        $entryMock->expects($this->once())->method('setDisabled')
             ->with($gallery[0]['disabled_default'])->willReturnSelf();
         $entryMock->expects($this->once())->method('setPosition')
             ->with($gallery[0]['position_default'])->willReturnSelf();
diff --git a/app/code/Magento/Catalog/composer.json b/app/code/Magento/Catalog/composer.json
index 92b97c635b087e12dfe820a58502df8d5e23322c..f6e7adcc008d5c41bcffa81f1aad61c587900316 100644
--- a/app/code/Magento/Catalog/composer.json
+++ b/app/code/Magento/Catalog/composer.json
@@ -8,7 +8,6 @@
         "magento/module-cms": "0.42.0-beta11",
         "magento/module-indexer": "0.42.0-beta11",
         "magento/module-customer": "0.42.0-beta11",
-        "magento/module-core": "0.42.0-beta11",
         "magento/module-theme": "0.42.0-beta11",
         "magento/module-checkout": "0.42.0-beta11",
         "magento/module-log": "0.42.0-beta11",
diff --git a/app/code/Magento/Catalog/etc/config.xml b/app/code/Magento/Catalog/etc/config.xml
index 27791541c72009b293df7ae93d4cd044c1d0ea67..9d4433c045425e2902dbc8b60c43ba01fcbeba7a 100644
--- a/app/code/Magento/Catalog/etc/config.xml
+++ b/app/code/Magento/Catalog/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <catalog>
             <navigation>
diff --git a/app/code/Magento/Catalog/etc/frontend/page_types.xml b/app/code/Magento/Catalog/etc/frontend/page_types.xml
index 2f789b816c75f328b7c05bd487c02064f88aefdc..7dc0beef39a5bfe7c47a704f09831547c1e9629d 100644
--- a/app/code/Magento/Catalog/etc/frontend/page_types.xml
+++ b/app/code/Magento/Catalog/etc/frontend/page_types.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="catalog_category_view" label="Catalog Category"/>
     <type id="catalog_product_compare_index" label="Catalog Product Compare List"/>
     <type id="catalog_product_gallery" label="Catalog Product Image Gallery Popup"/>
diff --git a/app/code/Magento/Catalog/etc/webapi.xml b/app/code/Magento/Catalog/etc/webapi.xml
index ab2485a26fd46723617e522964bb4724a5af8285..a4fb44c7eae061b3547fee1c93d61889dd923b7a 100644
--- a/app/code/Magento/Catalog/etc/webapi.xml
+++ b/app/code/Magento/Catalog/etc/webapi.xml
@@ -21,7 +21,7 @@
             <resource ref="Magento_Catalog::products" />
         </resources>
     </route>
-    <route url="/V1/products/:productSku" method="DELETE">
+    <route url="/V1/products/:sku" method="DELETE">
         <service class="Magento\Catalog\Api\ProductRepositoryInterface" method="deleteById"/>
         <resources>
             <resource ref="Magento_Catalog::products" />
@@ -33,7 +33,7 @@
             <resource ref="anonymous" />
         </resources>
     </route>
-    <route url="/V1/products/:productSku" method="GET">
+    <route url="/V1/products/:sku" method="GET">
         <service class="Magento\Catalog\Api\ProductRepositoryInterface" method="get"/>
         <resources>
             <resource ref="anonymous" />
@@ -196,31 +196,31 @@
             <resource ref="anonymous"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/media/:imageId" method="GET">
+    <route url="/V1/products/:sku/media/:imageId" method="GET">
         <service class="Magento\Catalog\Api\ProductAttributeMediaGalleryManagementInterface" method="get"/>
         <resources>
             <resource ref="anonymous"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/media" method="POST">
+    <route url="/V1/products/media" method="POST">
         <service class="Magento\Catalog\Api\ProductAttributeMediaGalleryManagementInterface" method="create"/>
         <resources>
             <resource ref="Magento_Catalog::catalog"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/media/:entryId" method="PUT">
+    <route url="/V1/products/:sku/media/:entryId" method="PUT">
         <service class="Magento\Catalog\Api\ProductAttributeMediaGalleryManagementInterface" method="update"/>
         <resources>
             <resource ref="Magento_Catalog::catalog"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/media/:entryId" method="DELETE">
+    <route url="/V1/products/:sku/media/:entryId" method="DELETE">
         <service class="Magento\Catalog\Api\ProductAttributeMediaGalleryManagementInterface" method="remove"/>
         <resources>
             <resource ref="Magento_Catalog::catalog"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/media" method="GET">
+    <route url="/V1/products/:sku/media" method="GET">
         <service class="Magento\Catalog\Api\ProductAttributeMediaGalleryManagementInterface" method="getList"/>
         <resources>
             <resource ref="anonymous"/>
@@ -228,19 +228,19 @@
     </route>
 
     <!-- Group Price -->
-    <route url="/V1/products/:productSku/group-prices/" method="GET">
+    <route url="/V1/products/:sku/group-prices/" method="GET">
         <service class="Magento\Catalog\Api\ProductGroupPriceManagementInterface" method="getList"/>
         <resources>
             <resource ref="anonymous"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/group-prices/:customerGroupId/price/:price" method="POST">
+    <route url="/V1/products/:sku/group-prices/:customerGroupId/price/:price" method="POST">
         <service class="Magento\Catalog\Api\ProductGroupPriceManagementInterface" method="add"/>
         <resources>
             <resource ref="Magento_Catalog::catalog"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/group-prices/:customerGroupId/" method="DELETE">
+    <route url="/V1/products/:sku/group-prices/:customerGroupId/" method="DELETE">
         <service class="Magento\Catalog\Api\ProductGroupPriceManagementInterface" method="remove"/>
         <resources>
             <resource ref="Magento_Catalog::catalog"/>
@@ -248,19 +248,19 @@
     </route>
 
     <!-- Tear Price -->
-    <route url="/V1/products/:productSku/group-prices/:customerGroupId/tiers" method="GET">
+    <route url="/V1/products/:sku/group-prices/:customerGroupId/tiers" method="GET">
         <service class="Magento\Catalog\Api\ProductTierPriceManagementInterface" method="getList"/>
         <resources>
             <resource ref="anonymous"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/group-prices/:customerGroupId/tiers/:qty/price/:price" method="POST">
+    <route url="/V1/products/:sku/group-prices/:customerGroupId/tiers/:qty/price/:price" method="POST">
         <service class="Magento\Catalog\Api\ProductTierPriceManagementInterface" method="add"/>
         <resources>
             <resource ref="Magento_Catalog::catalog"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/group-prices/:customerGroupId/tiers/:qty" method="DELETE">
+    <route url="/V1/products/:sku/group-prices/:customerGroupId/tiers/:qty" method="DELETE">
         <service class="Magento\Catalog\Api\ProductTierPriceManagementInterface" method="remove"/>
         <resources>
             <resource ref="Magento_Catalog::catalog"/>
@@ -311,13 +311,13 @@
             <resource ref="Magento_Catalog::catalog"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/options" method="GET">
+    <route url="/V1/products/:sku/options" method="GET">
         <service class="Magento\Catalog\Api\ProductCustomOptionRepositoryInterface" method="getList"/>
         <resources>
             <resource ref="anonymous"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/options/:optionId" method="GET">
+    <route url="/V1/products/:sku/options/:optionId" method="GET">
         <service class="Magento\Catalog\Api\ProductCustomOptionRepositoryInterface" method="get"/>
         <resources>
             <resource ref="anonymous"/>
@@ -335,7 +335,7 @@
             <resource ref="Magento_Catalog::catalog"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/options/:optionId" method="DELETE">
+    <route url="/V1/products/:sku/options/:optionId" method="DELETE">
         <service class="Magento\Catalog\Api\ProductCustomOptionRepositoryInterface" method="deleteByIdentifier"/>
         <resources>
             <resource ref="Magento_Catalog::catalog"/>
@@ -355,25 +355,25 @@
             <resource ref="anonymous"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/links/:type" method="GET">
+    <route url="/V1/products/:sku/links/:type" method="GET">
         <service class="Magento\Catalog\Api\ProductLinkManagementInterface" method="getLinkedItemsByType"/>
         <resources>
             <resource ref="anonymous"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/links/:type" method="POST">
+    <route url="/V1/products/:sku/links/:type" method="POST">
         <service class="Magento\Catalog\Api\ProductLinkManagementInterface" method="setProductLinks"/>
         <resources>
             <resource ref="Magento_Catalog::catalog"/>
         </resources>
     </route>
-    <route url="/V1/products/:productSku/links/:type/:linkedProductSku" method="DELETE">
+    <route url="/V1/products/:sku/links/:type/:linkedProductSku" method="DELETE">
         <service class="Magento\Catalog\Api\ProductLinkRepositoryInterface" method="deleteById"/>
         <resources>
             <resource ref="Magento_Catalog::catalog"/>
         </resources>
     </route>
-    <route url="/V1/products/:product_sku/links/:link_type" method="PUT">
+    <route url="/V1/products/:sku/links/:link_type" method="PUT">
         <service class="Magento\Catalog\Api\ProductLinkRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Catalog::catalog"/>
@@ -399,7 +399,7 @@
             <resource ref="Magento_Catalog::categories" />
         </resources>
     </route>
-    <route url="/V1/categories/:categoryId/products/:productSku" method="DELETE">
+    <route url="/V1/categories/:categoryId/products/:sku" method="DELETE">
         <service class="Magento\Catalog\Api\CategoryLinkRepositoryInterface" method="deleteByIds" />
         <resources>
             <resource ref="Magento_Catalog::categories" />
diff --git a/app/code/Magento/CatalogImportExport/etc/config.xml b/app/code/Magento/CatalogImportExport/etc/config.xml
index cdd8b60e4ccc8765bd9f371848fb36f118660528..707ae08d9c77fe25b799ff5199b36bf69f93de61 100644
--- a/app/code/Magento/CatalogImportExport/etc/config.xml
+++ b/app/code/Magento/CatalogImportExport/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <export>
         </export>
diff --git a/app/code/Magento/CatalogInventory/etc/config.xml b/app/code/Magento/CatalogInventory/etc/config.xml
index 3b19e058fe0001cd78538f82d540785941484aef..52c6f7ce2f7b2e11a2cff2c3bd2f3e066e916835 100644
--- a/app/code/Magento/CatalogInventory/etc/config.xml
+++ b/app/code/Magento/CatalogInventory/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <cataloginventory>
             <options>
diff --git a/app/code/Magento/CatalogInventory/etc/webapi.xml b/app/code/Magento/CatalogInventory/etc/webapi.xml
index 238794f1796574fe5b3633880c7083eb0f32e8d0..80317eccf51a7dd8ba3e7d24fe0497cef61e9df2 100644
--- a/app/code/Magento/CatalogInventory/etc/webapi.xml
+++ b/app/code/Magento/CatalogInventory/etc/webapi.xml
@@ -7,25 +7,25 @@
 -->
 <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
-    <route url="/V1/stockItem/:productSku" method="GET">
+    <route url="/V1/stockItems/:productSku" method="GET">
         <service class="Magento\CatalogInventory\Api\StockRegistryInterface" method="getStockItemBySku"/>
         <resources>
             <resource ref="Magento_CatalogInventory::cataloginventory"/>
         </resources>
     </route>
-    <route url="/V1/stockItem/:productSku" method="PUT">
+    <route url="/V1/stockItems/:productSku" method="PUT">
         <service class="Magento\CatalogInventory\Api\StockRegistryInterface" method="updateStockItemBySku"/>
         <resources>
             <resource ref="Magento_CatalogInventory::cataloginventory"/>
         </resources>
     </route>
-    <route url="/V1/stockItem/lowStock/" method="GET">
+    <route url="/V1/stockItems/lowStock/" method="GET">
         <service class="Magento\CatalogInventory\Api\StockRegistryInterface" method="getLowStockItems"/>
         <resources>
             <resource ref="Magento_CatalogInventory::cataloginventory"/>
         </resources>
     </route>
-    <route url="/V1/stockStatus/:productSku" method="GET">
+    <route url="/V1/stockStatuses/:productSku" method="GET">
         <service class="Magento\CatalogInventory\Api\StockRegistryInterface" method="getStockStatusBySku"/>
         <resources>
             <resource ref="anonymous"/>
diff --git a/app/code/Magento/CatalogSearch/etc/config.xml b/app/code/Magento/CatalogSearch/etc/config.xml
index e6812e9c2629a7555da67222270e2f16db705ce1..a29db223f42df34564539bff7af30620bee812c4 100644
--- a/app/code/Magento/CatalogSearch/etc/config.xml
+++ b/app/code/Magento/CatalogSearch/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <catalog>
             <seo>
diff --git a/app/code/Magento/CatalogSearch/etc/frontend/page_types.xml b/app/code/Magento/CatalogSearch/etc/frontend/page_types.xml
index 8aa580b0ef888b5b82d90e1909cd79139cb89f29..5f4367132ae9b7dd9ce2095e035c01302234fe3c 100644
--- a/app/code/Magento/CatalogSearch/etc/frontend/page_types.xml
+++ b/app/code/Magento/CatalogSearch/etc/frontend/page_types.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="catalogsearch_advanced_index" label="Advanced Search Form"/>
     <type id="catalogsearch_advanced_result" label="Advanced Search Result"/>
     <type id="catalogsearch_result_index" label="Quick Search Form"/>
diff --git a/app/code/Magento/Checkout/composer.json b/app/code/Magento/Checkout/composer.json
index 6a4b0255686f84d78b71a80df174311f155b9999..ed8f574a7005d5cf7aa498cff6670c9cf6027f40 100644
--- a/app/code/Magento/Checkout/composer.json
+++ b/app/code/Magento/Checkout/composer.json
@@ -6,7 +6,7 @@
         "magento/module-store": "0.42.0-beta11",
         "magento/module-sales": "0.42.0-beta11",
         "magento/module-catalog-inventory": "0.42.0-beta11",
-        "magento/module-core": "0.42.0-beta11",
+        "magento/module-config": "0.42.0-beta11",
         "magento/module-customer": "0.42.0-beta11",
         "magento/module-catalog": "0.42.0-beta11",
         "magento/module-payment": "0.42.0-beta11",
diff --git a/app/code/Magento/Checkout/etc/config.xml b/app/code/Magento/Checkout/etc/config.xml
index 5d709676cb3b6ceedd9b7d25109914f1900a0a8f..31f59f6d891c5af880e55ec5d2dda30c5d26ab28 100644
--- a/app/code/Magento/Checkout/etc/config.xml
+++ b/app/code/Magento/Checkout/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <checkout>
             <options>
diff --git a/app/code/Magento/Checkout/etc/frontend/page_types.xml b/app/code/Magento/Checkout/etc/frontend/page_types.xml
index 10c6563f3e27306d7d44cd691fe0c359c35e7bc3..dc770ab1d1bb794e1de7d404ce9ea6a132badb4f 100644
--- a/app/code/Magento/Checkout/etc/frontend/page_types.xml
+++ b/app/code/Magento/Checkout/etc/frontend/page_types.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="checkout_cart_configure" label="Configure Cart Item (Any)"/>
     <type id="checkout_cart_index" label="Shopping Cart"/>
     <type id="checkout_onepage_failure" label="One Page Checkout Failure"/>
diff --git a/app/code/Magento/CheckoutAgreements/etc/module.xml b/app/code/Magento/CheckoutAgreements/etc/module.xml
index 36bad32ebf304277292947dd3b01f54704cc0b7b..249c7b190e363da6ada252358dc4e4f8f4ca3c29 100644
--- a/app/code/Magento/CheckoutAgreements/etc/module.xml
+++ b/app/code/Magento/CheckoutAgreements/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_CheckoutAgreements" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
         </sequence>
     </module>
diff --git a/app/code/Magento/Cms/etc/config.xml b/app/code/Magento/Cms/etc/config.xml
index 159fffe75e0734b6f1186375afda5460a90d5852..5b25edb764f4d8e03ddb79a8c404d3475707c2fb 100644
--- a/app/code/Magento/Cms/etc/config.xml
+++ b/app/code/Magento/Cms/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <web>
             <default>
diff --git a/app/code/Magento/Cms/etc/frontend/page_types.xml b/app/code/Magento/Cms/etc/frontend/page_types.xml
index ac2f917542bcc6bddaa28fa8de7701d5fa6b9aa1..a6284ce44454b14ce4a256d0fa0db37d49cb0999 100644
--- a/app/code/Magento/Cms/etc/frontend/page_types.xml
+++ b/app/code/Magento/Cms/etc/frontend/page_types.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="cms_index_defaultindex" label="CMS Home Default Page"/>
     <type id="cms_index_defaultnoroute" label="CMS No-Route Default Page"/>
     <type id="cms_index_index" label="CMS Home Page"/>
diff --git a/app/code/Magento/Cms/etc/module.xml b/app/code/Magento/Cms/etc/module.xml
index e083de84b5d1cde2788572eeca66dc552fbbb8c1..9103575c3a6b146e2e8fa1559ac1eeb91fd4625c 100644
--- a/app/code/Magento/Cms/etc/module.xml
+++ b/app/code/Magento/Cms/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Cms" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
             <module name="Magento_Theme"/>
         </sequence>
diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Source/Email/TemplateTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Source/Email/TemplateTest.php
index 12a6aaa4103648be57f326ea5190e834ce51e8f0..03dd7a71d0c22c9534beca8babb44334b0ce446b 100644
--- a/app/code/Magento/Config/Test/Unit/Model/Config/Source/Email/TemplateTest.php
+++ b/app/code/Magento/Config/Test/Unit/Model/Config/Source/Email/TemplateTest.php
@@ -3,6 +3,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Config\Test\Unit\Model\Config\Source\Email;
 
 class TemplateTest extends \PHPUnit_Framework_TestCase
@@ -23,7 +26,7 @@ class TemplateTest extends \PHPUnit_Framework_TestCase
     protected $_emailConfig;
 
     /**
-     * @var /Magento\Core\Model\Resource\Email\Template\CollectionFactory
+     * @var \Magento\Email\Model\Resource\Email\Template\CollectionFactory
      */
     protected $_templatesFactory;
 
diff --git a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/FieldTest.php b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/FieldTest.php
index 900ec273d690e6853f528c8a2d92e70a64c0b444..c9457d003b374eae3006746308c56aac7709e7a6 100644
--- a/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/FieldTest.php
+++ b/app/code/Magento/Config/Test/Unit/Model/Config/Structure/Element/FieldTest.php
@@ -5,6 +5,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Config\Test\Unit\Model\Config\Structure\Element;
 
 class FieldTest extends \PHPUnit_Framework_TestCase
@@ -171,7 +174,7 @@ class FieldTest extends \PHPUnit_Framework_TestCase
 
     public function testGetTooltipCreatesTooltipBlock()
     {
-        $this->_model->setData(['tooltip_block' => 'Magento\Core\Block\Tooltip'], 'scope');
+        $this->_model->setData(['tooltip_block' => 'Magento\Config\Block\Tooltip'], 'scope');
         $tooltipBlock = $this->getMock('Magento\Framework\View\Element\BlockInterface');
         $tooltipBlock->expects($this->once())->method('toHtml')->will($this->returnValue('tooltip block'));
         $this->_blockFactoryMock->expects(
@@ -179,7 +182,7 @@ class FieldTest extends \PHPUnit_Framework_TestCase
         )->method(
             'createBlock'
         )->with(
-            'Magento\Core\Block\Tooltip'
+            'Magento\Config\Block\Tooltip'
         )->will(
             $this->returnValue($tooltipBlock)
         );
diff --git a/app/code/Magento/Config/composer.json b/app/code/Magento/Config/composer.json
index 34ebbca138848ab22af73c0dd1f39fb0deadcebf..9fdfc97389801480818889a96c47d96ce1b2dd11 100644
--- a/app/code/Magento/Config/composer.json
+++ b/app/code/Magento/Config/composer.json
@@ -4,7 +4,6 @@
     "require": {
         "php": "~5.5.0|~5.6.0",
         "magento/framework": "0.42.0-beta11",
-        "magento/module-core": "0.42.0-beta11",
         "magento/module-store": "0.42.0-beta11",
         "magento/module-cron": "0.42.0-beta11",
         "magento/module-email": "0.42.0-beta11",
diff --git a/app/code/Magento/Config/i18n/de_DE.csv b/app/code/Magento/Config/i18n/de_DE.csv
new file mode 100644
index 0000000000000000000000000000000000000000..0aa412938948174cc2ccbb853f05ff5f6de51522
--- /dev/null
+++ b/app/code/Magento/Config/i18n/de_DE.csv
@@ -0,0 +1 @@
+Configuration,Configuration
diff --git a/app/code/Magento/Config/i18n/en_US.csv b/app/code/Magento/Config/i18n/en_US.csv
new file mode 100644
index 0000000000000000000000000000000000000000..0aa412938948174cc2ccbb853f05ff5f6de51522
--- /dev/null
+++ b/app/code/Magento/Config/i18n/en_US.csv
@@ -0,0 +1 @@
+Configuration,Configuration
diff --git a/app/code/Magento/Config/i18n/es_ES.csv b/app/code/Magento/Config/i18n/es_ES.csv
new file mode 100644
index 0000000000000000000000000000000000000000..0aa412938948174cc2ccbb853f05ff5f6de51522
--- /dev/null
+++ b/app/code/Magento/Config/i18n/es_ES.csv
@@ -0,0 +1 @@
+Configuration,Configuration
diff --git a/app/code/Magento/Config/i18n/fr_FR.csv b/app/code/Magento/Config/i18n/fr_FR.csv
new file mode 100644
index 0000000000000000000000000000000000000000..0aa412938948174cc2ccbb853f05ff5f6de51522
--- /dev/null
+++ b/app/code/Magento/Config/i18n/fr_FR.csv
@@ -0,0 +1 @@
+Configuration,Configuration
diff --git a/app/code/Magento/Config/i18n/nl_NL.csv b/app/code/Magento/Config/i18n/nl_NL.csv
new file mode 100644
index 0000000000000000000000000000000000000000..0aa412938948174cc2ccbb853f05ff5f6de51522
--- /dev/null
+++ b/app/code/Magento/Config/i18n/nl_NL.csv
@@ -0,0 +1 @@
+Configuration,Configuration
diff --git a/app/code/Magento/Config/i18n/pt_BR.csv b/app/code/Magento/Config/i18n/pt_BR.csv
new file mode 100644
index 0000000000000000000000000000000000000000..0aa412938948174cc2ccbb853f05ff5f6de51522
--- /dev/null
+++ b/app/code/Magento/Config/i18n/pt_BR.csv
@@ -0,0 +1 @@
+Configuration,Configuration
diff --git a/app/code/Magento/Config/i18n/zh_CN.csv b/app/code/Magento/Config/i18n/zh_CN.csv
new file mode 100644
index 0000000000000000000000000000000000000000..0aa412938948174cc2ccbb853f05ff5f6de51522
--- /dev/null
+++ b/app/code/Magento/Config/i18n/zh_CN.csv
@@ -0,0 +1 @@
+Configuration,Configuration
diff --git a/app/code/Magento/ConfigurableProduct/Api/LinkManagementInterface.php b/app/code/Magento/ConfigurableProduct/Api/LinkManagementInterface.php
index 92d408658636e4e6f58de24865b406f4de1a69a6..2b62e7c3e73eb31cfaf79d42dbef93c2a6e48914 100644
--- a/app/code/Magento/ConfigurableProduct/Api/LinkManagementInterface.php
+++ b/app/code/Magento/ConfigurableProduct/Api/LinkManagementInterface.php
@@ -11,26 +11,26 @@ interface LinkManagementInterface
     /**
      * Get all children for Bundle product
      *
-     * @param string $productSku
+     * @param string $sku
      * @return \Magento\Catalog\Api\Data\ProductInterface[]
      */
-    public function getChildren($productSku);
+    public function getChildren($sku);
 
     /**
-     * @param  string $productSku
+     * @param  string $sku
      * @param  string $childSku
      * @return bool
      */
-    public function addChild($productSku, $childSku);
+    public function addChild($sku, $childSku);
 
     /**
      * Remove configurable product option
      *
-     * @param string $productSku
+     * @param string $sku
      * @param string $childSku
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\InputException
      * @return bool
      */
-    public function removeChild($productSku, $childSku);
+    public function removeChild($sku, $childSku);
 }
diff --git a/app/code/Magento/ConfigurableProduct/Api/OptionRepositoryInterface.php b/app/code/Magento/ConfigurableProduct/Api/OptionRepositoryInterface.php
index 0c27db8c4fa4c67d4542294f2823c569e40adf38..990d8fd6dcaf8f64c36c43127a4dd8b763cdc2b1 100644
--- a/app/code/Magento/ConfigurableProduct/Api/OptionRepositoryInterface.php
+++ b/app/code/Magento/ConfigurableProduct/Api/OptionRepositoryInterface.php
@@ -11,23 +11,23 @@ interface OptionRepositoryInterface
     /**
      * Get option for configurable product
      *
-     * @param string $productSku
-     * @param int $optionId
+     * @param string $sku
+     * @param int $id
      * @return \Magento\ConfigurableProduct\Api\Data\OptionInterface
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\InputException
      */
-    public function get($productSku, $optionId);
+    public function get($sku, $id);
 
     /**
      * Get all options for configurable product
      *
-     * @param string $productSku
+     * @param string $sku
      * @return \Magento\ConfigurableProduct\Api\Data\OptionInterface[]
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\InputException
      */
-    public function getList($productSku);
+    public function getList($sku);
 
     /**
      * Remove option from configurable product
@@ -40,23 +40,23 @@ interface OptionRepositoryInterface
     /**
      * Remove option from configurable product
      *
-     * @param string $productSku
-     * @param int $optionId
+     * @param string $sku
+     * @param int $id
      * @return bool
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\InputException
      */
-    public function deleteById($productSku, $optionId);
+    public function deleteById($sku, $id);
 
     /**
      * Save option
      *
-     * @param string $productSku
+     * @param string $sku
      * @param \Magento\ConfigurableProduct\Api\Data\OptionInterface $option
      * @return int
      * @throws \Magento\Framework\Exception\NoSuchEntityException
      * @throws \Magento\Framework\Exception\CouldNotSaveException
      * @throws \InvalidArgumentException
      */
-    public function save($productSku, \Magento\ConfigurableProduct\Api\Data\OptionInterface $option);
+    public function save($sku, \Magento\ConfigurableProduct\Api\Data\OptionInterface $option);
 }
diff --git a/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php b/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php
index 7f57b5e9b2dc7a2594bb0b17599b04d849e74623..1980a0228614bfaf192001f4cc560d1846af6a87 100644
--- a/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php
+++ b/app/code/Magento/ConfigurableProduct/Model/LinkManagement.php
@@ -53,10 +53,10 @@ class LinkManagement implements \Magento\ConfigurableProduct\Api\LinkManagementI
     /**
      * {@inheritdoc}
      */
-    public function getChildren($productSku)
+    public function getChildren($sku)
     {
         /** @var \Magento\Catalog\Model\Product $product */
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         if ($product->getTypeId() != \Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE) {
             return [];
         }
@@ -92,9 +92,9 @@ class LinkManagement implements \Magento\ConfigurableProduct\Api\LinkManagementI
     /**
      * {@inheritdoc}
      */
-    public function addChild($productSku, $childSku)
+    public function addChild($sku, $childSku)
     {
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         $child = $this->productRepository->get($childSku);
 
         $childrenIds = array_values($this->configurableType->getChildrenIds($product->getId())[0]);
@@ -111,13 +111,13 @@ class LinkManagement implements \Magento\ConfigurableProduct\Api\LinkManagementI
     /**
      * {@inheritdoc}
      */
-    public function removeChild($productSku, $childSku)
+    public function removeChild($sku, $childSku)
     {
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
 
         if ($product->getTypeId() != \Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE) {
             throw new InputException(
-                sprintf('Product with specified sku: %s is not a configurable product', $productSku)
+                sprintf('Product with specified sku: %s is not a configurable product', $sku)
             );
         }
 
diff --git a/app/code/Magento/ConfigurableProduct/Model/OptionRepository.php b/app/code/Magento/ConfigurableProduct/Model/OptionRepository.php
index 6de09a43ddd59eba1fb5b46ceb00680abf08afe5..0106b5292d5c70827b0811e95d367b873cb2ad58 100644
--- a/app/code/Magento/ConfigurableProduct/Model/OptionRepository.php
+++ b/app/code/Magento/ConfigurableProduct/Model/OptionRepository.php
@@ -84,15 +84,15 @@ class OptionRepository implements \Magento\ConfigurableProduct\Api\OptionReposit
     /**
      * {@inheritdoc}
      */
-    public function get($productSku, $optionId)
+    public function get($sku, $id)
     {
-        $product = $this->getProduct($productSku);
+        $product = $this->getProduct($sku);
         $collection = $this->getConfigurableAttributesCollection($product);
-        $collection->addFieldToFilter($collection->getResource()->getIdFieldName(), $optionId);
+        $collection->addFieldToFilter($collection->getResource()->getIdFieldName(), $id);
         /** @var \Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute $configurableAttribute */
         $configurableAttribute = $collection->getFirstItem();
         if (!$configurableAttribute->getId()) {
-            throw new NoSuchEntityException(sprintf('Requested option doesn\'t exist: %s', $optionId));
+            throw new NoSuchEntityException(sprintf('Requested option doesn\'t exist: %s', $id));
         }
         $prices = $configurableAttribute->getPrices();
         if (is_array($prices)) {
@@ -112,10 +112,10 @@ class OptionRepository implements \Magento\ConfigurableProduct\Api\OptionReposit
     /**
      * {@inheritdoc}
      */
-    public function getList($productSku)
+    public function getList($sku)
     {
         $options = [];
-        $product = $this->getProduct($productSku);
+        $product = $this->getProduct($sku);
         foreach ($this->getConfigurableAttributesCollection($product) as $option) {
             $values = [];
             $prices = $option->getPrices();
@@ -153,12 +153,12 @@ class OptionRepository implements \Magento\ConfigurableProduct\Api\OptionReposit
     /**
      * {@inheritdoc}
      */
-    public function deleteById($productSku, $optionId)
+    public function deleteById($sku, $id)
     {
-        $product = $this->getProduct($productSku);
+        $product = $this->getProduct($sku);
         $attributeCollection = $this->configurableType->getConfigurableAttributeCollection($product);
         /** @var \Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute $option */
-        $option = $attributeCollection->getItemById($optionId);
+        $option = $attributeCollection->getItemById($id);
         if ($option === null) {
             throw new NoSuchEntityException('Requested option doesn\'t exist');
         }
@@ -169,13 +169,13 @@ class OptionRepository implements \Magento\ConfigurableProduct\Api\OptionReposit
      * {@inheritdoc}
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function save($productSku, \Magento\ConfigurableProduct\Api\Data\OptionInterface $option)
+    public function save($sku, \Magento\ConfigurableProduct\Api\Data\OptionInterface $option)
     {
         /** @var $configurableAttribute \Magento\ConfigurableProduct\Model\Product\Type\Configurable\Attribute */
         $configurableAttribute = $this->configurableAttributeFactory->create();
         if ($option->getId()) {
             /** @var \Magento\Catalog\Model\Product $product */
-            $product = $this->getProduct($productSku);
+            $product = $this->getProduct($sku);
             $configurableAttribute->load($option->getId());
             if (!$configurableAttribute->getId() || $configurableAttribute->getProductId() != $product->getId()) {
                 throw new NoSuchEntityException(
@@ -199,7 +199,7 @@ class OptionRepository implements \Magento\ConfigurableProduct\Api\OptionReposit
         } else {
             $this->validateNewOptionData($option);
             /** @var \Magento\Catalog\Model\Product $product */
-            $product = $this->productRepository->get($productSku);
+            $product = $this->productRepository->get($sku);
             $allowedTypes = [ProductType::TYPE_SIMPLE, ProductType::TYPE_VIRTUAL, ConfigurableType::TYPE_CODE];
             if (!in_array($product->getTypeId(), $allowedTypes)) {
                 throw new \InvalidArgumentException('Incompatible product type');
@@ -240,16 +240,16 @@ class OptionRepository implements \Magento\ConfigurableProduct\Api\OptionReposit
     /**
      * Retrieve product instance by sku
      *
-     * @param string $productSku
+     * @param string $sku
      * @return \Magento\Catalog\Model\Product
      * @throws InputException
      */
-    private function getProduct($productSku)
+    private function getProduct($sku)
     {
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         if (\Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE !== $product->getTypeId()) {
             throw new InputException(
-                sprintf('Only implemented for configurable product: %s', $productSku)
+                sprintf('Only implemented for configurable product: %s', $sku)
             );
         }
         return $product;
diff --git a/app/code/Magento/ConfigurableProduct/Model/Product/Validator/Plugin.php b/app/code/Magento/ConfigurableProduct/Model/Product/Validator/Plugin.php
index c5fcd0eed8f45f2dcd99255b7c3017e30a69fdde..7b9feeb1d1a64269354d2ca21ba3774e0f218e4b 100644
--- a/app/code/Magento/ConfigurableProduct/Model/Product/Validator/Plugin.php
+++ b/app/code/Magento/ConfigurableProduct/Model/Product/Validator/Plugin.php
@@ -8,7 +8,6 @@ namespace Magento\ConfigurableProduct\Model\Product\Validator;
 use Closure;
 use Magento\Catalog\Model\Product;
 use Magento\Catalog\Model\ProductFactory;
-use Magento\Core\Helper;
 use Magento\Framework\App\RequestInterface;
 use Magento\Framework\Event\Manager;
 use Magento\Framework\Json\Helper\Data;
diff --git a/app/code/Magento/ConfigurableProduct/composer.json b/app/code/Magento/ConfigurableProduct/composer.json
index d893a9a579d497a9ffb1e24a944cdf351bc37447..8e5ed6d41420f3511ea04f64c73aae01705a0d98 100644
--- a/app/code/Magento/ConfigurableProduct/composer.json
+++ b/app/code/Magento/ConfigurableProduct/composer.json
@@ -7,7 +7,6 @@
         "magento/module-catalog": "0.42.0-beta11",
         "magento/module-catalog-inventory": "0.42.0-beta11",
         "magento/module-sales": "0.42.0-beta11",
-        "magento/module-core": "0.42.0-beta11",
         "magento/module-checkout": "0.42.0-beta11",
         "magento/module-backend": "0.42.0-beta11",
         "magento/module-eav": "0.42.0-beta11",
diff --git a/app/code/Magento/ConfigurableProduct/etc/config.xml b/app/code/Magento/ConfigurableProduct/etc/config.xml
index f634fdfd21a81a63bf7c4c072c1450b1c4f30898..9cbd5d1e351f252168756cac3dd03ade2e3cc296 100644
--- a/app/code/Magento/ConfigurableProduct/etc/config.xml
+++ b/app/code/Magento/ConfigurableProduct/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <checkout>
             <cart>
diff --git a/app/code/Magento/ConfigurableProduct/etc/webapi.xml b/app/code/Magento/ConfigurableProduct/etc/webapi.xml
index d48569ce61b337753067bd160f1627a84dd261f2..9c68aa71869f44782120dda382eb7de6c34e9f2d 100644
--- a/app/code/Magento/ConfigurableProduct/etc/webapi.xml
+++ b/app/code/Magento/ConfigurableProduct/etc/webapi.xml
@@ -7,13 +7,13 @@
 -->
 <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
-    <route url="/V1/configurable-products/:productSku/children" method="GET">
+    <route url="/V1/configurable-products/:sku/children" method="GET">
         <service class="Magento\ConfigurableProduct\Api\LinkManagementInterface" method="getChildren"/>
         <resources>
             <resource ref="Magento_Catalog::products"/>
         </resources>
     </route>
-    <route url="/V1/configurable-products/:productSku/child/:childSku" method="DELETE">
+    <route url="/V1/configurable-products/:sku/children/:childSku" method="DELETE">
         <service class="Magento\ConfigurableProduct\Api\LinkManagementInterface" method="removeChild"/>
         <resources>
             <resource ref="Magento_Catalog::products"/>
@@ -25,19 +25,19 @@
             <resource ref="Magento_Catalog::products" />
         </resources>
     </route>
-    <route url="/V1/configurable-products/:productSku/child" method="POST">
+    <route url="/V1/configurable-products/:sku/child" method="POST">
         <service class="Magento\ConfigurableProduct\Api\LinkManagementInterface" method="addChild"/>
         <resources>
             <resource ref="Magento_Catalog::products" />
         </resources>
     </route>
-    <route url="/V1/configurable-products/:productSku/options/:optionId" method="GET">
+    <route url="/V1/configurable-products/:sku/options/:id" method="GET">
         <service class="Magento\ConfigurableProduct\Api\OptionRepositoryInterface" method="get"/>
         <resources>
             <resource ref="Magento_Catalog::products"/>
         </resources>
     </route>
-    <route url="/V1/configurable-products/:productSku/options/all" method="GET">
+    <route url="/V1/configurable-products/:sku/options/all" method="GET">
         <service class="Magento\ConfigurableProduct\Api\OptionRepositoryInterface" method="getList"/>
         <resources>
             <resource ref="Magento_Catalog::products"/>
@@ -49,19 +49,19 @@
             <resource ref="Magento_Catalog::products" />
         </resources>
     </route>
-    <route url="/V1/configurable-products/:productSku/options" method="POST">
+    <route url="/V1/configurable-products/:sku/options" method="POST">
         <service class="Magento\ConfigurableProduct\Api\OptionRepositoryInterface" method="save" />
         <resources>
             <resource ref="Magento_Catalog::products" />
         </resources>
     </route>
-    <route url="/V1/configurable-products/:productSku/options/:id" method="PUT">
+    <route url="/V1/configurable-products/:sku/options/:id" method="PUT">
         <service class="Magento\ConfigurableProduct\Api\OptionRepositoryInterface" method="save" />
         <resources>
             <resource ref="Magento_Catalog::products" />
         </resources>
     </route>
-    <route url="/V1/configurable-products/:productSku/options/:optionId" method="DELETE">
+    <route url="/V1/configurable-products/:sku/options/:id" method="DELETE">
         <service class="Magento\ConfigurableProduct\Api\OptionRepositoryInterface" method="deleteById" />
         <resources>
             <resource ref="Magento_Catalog::products" />
diff --git a/app/code/Magento/Contact/etc/config.xml b/app/code/Magento/Contact/etc/config.xml
index f075a4e53a954f1aedaa8bbf705921857eac6dc2..fb2a17aa0100cbc9524c4692881ac265f7fe2275 100644
--- a/app/code/Magento/Contact/etc/config.xml
+++ b/app/code/Magento/Contact/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <contact>
             <contact>
diff --git a/app/code/Magento/Contact/etc/frontend/page_types.xml b/app/code/Magento/Contact/etc/frontend/page_types.xml
index 9bcf7e9ca9774e395810ebab93590bea9ef4c401..9e85e85522a1557017ebbb649332049502d381fb 100644
--- a/app/code/Magento/Contact/etc/frontend/page_types.xml
+++ b/app/code/Magento/Contact/etc/frontend/page_types.xml
@@ -5,6 +5,6 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="contact_index_index" label="Contact Us Form"/>
 </page_types>
diff --git a/app/code/Magento/Contact/etc/module.xml b/app/code/Magento/Contact/etc/module.xml
index 9962113cf348f736f2f61a98ac2e1b54761b3625..96f06a6c555a729a02b8643f7e01b3987e5a9bf0 100644
--- a/app/code/Magento/Contact/etc/module.xml
+++ b/app/code/Magento/Contact/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Contact" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
         </sequence>
     </module>
diff --git a/app/code/Magento/Cookie/etc/config.xml b/app/code/Magento/Cookie/etc/config.xml
index cdeb99d4195ea29343fec69aaf2b69fcfd9ed508..7ebaec497d7bfd166822f31eb274c3e2feeb3692 100644
--- a/app/code/Magento/Cookie/etc/config.xml
+++ b/app/code/Magento/Cookie/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <web>
             <cookie>
diff --git a/app/code/Magento/Core/Controller/Index/NotFound.php b/app/code/Magento/Core/Controller/Index/NotFound.php
deleted file mode 100644
index 3e0a46abf199a8ac1da81af408f8940d170d09fa..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/Controller/Index/NotFound.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-/**
- *
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Core\Controller\Index;
-
-class NotFound extends \Magento\Framework\App\Action\Action
-{
-    /**
-     * 404 not found action
-     *
-     * @return void
-     */
-    public function execute()
-    {
-        $this->getResponse()->setStatusHeader(404, '1.1', 'Not Found');
-        $this->getResponse()->setBody(__('Requested resource not found'));
-    }
-}
diff --git a/app/code/Magento/Core/Setup/InstallData.php b/app/code/Magento/Core/Setup/InstallData.php
deleted file mode 100755
index 52d8e6bea687733db2bd6fb477bcc1f11a9ed24e..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/Setup/InstallData.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Core\Setup;
-
-use Magento\Framework\Module\Setup\Migration;
-use Magento\Framework\Setup\InstallDataInterface;
-use Magento\Framework\Setup\ModuleContextInterface;
-use Magento\Framework\Setup\ModuleDataSetupInterface;
-
-/**
- * @codeCoverageIgnore
- */
-class InstallData implements InstallDataInterface
-{
-    /**
-     * {@inheritdoc}
-     */
-    public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
-    {
-        $setup->startSetup();
-
-        /**
-         * Delete rows by condition from authorization_rule
-         */
-        $tableName = $setup->getTable('authorization_rule');
-        if ($tableName) {
-            $setup->getConnection()->delete($tableName, ['resource_id = ?' => 'admin/system/tools/compiler']);
-        }
-
-        $setup->endSetup();
-        
-    }
-}
diff --git a/app/code/Magento/Core/Setup/InstallSchema.php b/app/code/Magento/Core/Setup/InstallSchema.php
deleted file mode 100644
index 5a9c92b58b1e6fcaf355c817a34c16f74d5c46c5..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/Setup/InstallSchema.php
+++ /dev/null
@@ -1,231 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Core\Setup;
-
-use Magento\Framework\Setup\InstallSchemaInterface;
-use Magento\Framework\Setup\ModuleContextInterface;
-use Magento\Framework\Setup\SchemaSetupInterface;
-
-/**
- * @codeCoverageIgnore
- */
-class InstallSchema implements InstallSchemaInterface
-{
-    /**
-     * {@inheritdoc}
-     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
-     */
-    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
-    {
-        $installer = $setup;
-
-        /* @var $connection \Magento\Framework\DB\Adapter\AdapterInterface */
-        $connection = $installer->getConnection();
-
-        $installer->startSetup();
-
-        /**
-         * Create table 'core_session'
-         */
-        $table = $connection->newTable(
-            $installer->getTable('core_session')
-        )->addColumn(
-            'session_id',
-            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
-            255,
-            ['nullable' => false, 'primary' => true],
-            'Session Id'
-        )->addColumn(
-            'session_expires',
-            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
-            null,
-            ['unsigned' => true, 'nullable' => false, 'default' => '0'],
-            'Date of Session Expiration'
-        )->addColumn(
-            'session_data',
-            \Magento\Framework\DB\Ddl\Table::TYPE_BLOB,
-            '2M',
-            ['nullable' => false],
-            'Session Data'
-        )->setComment(
-            'Database Sessions Storage'
-        );
-        $connection->createTable($table);
-
-        /**
-         * Create table 'design_change'
-         */
-        $table = $connection->newTable(
-            $installer->getTable('design_change')
-        )->addColumn(
-            'design_change_id',
-            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
-            null,
-            ['identity' => true, 'nullable' => false, 'primary' => true],
-            'Design Change Id'
-        )->addColumn(
-            'store_id',
-            \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
-            null,
-            ['unsigned' => true, 'nullable' => false, 'default' => '0'],
-            'Store Id'
-        )->addColumn(
-            'design',
-            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
-            255,
-            [],
-            'Design'
-        )->addColumn(
-            'date_from',
-            \Magento\Framework\DB\Ddl\Table::TYPE_DATE,
-            null,
-            [],
-            'First Date of Design Activity'
-        )->addColumn(
-            'date_to',
-            \Magento\Framework\DB\Ddl\Table::TYPE_DATE,
-            null,
-            [],
-            'Last Date of Design Activity'
-        )->addIndex(
-            $installer->getIdxName('design_change', ['store_id']),
-            ['store_id']
-        )->addForeignKey(
-            $installer->getFkName('design_change', 'store_id', 'store', 'store_id'),
-            'store_id',
-            $installer->getTable('store'),
-            'store_id',
-            \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE,
-            \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE
-        )->setComment(
-            'Design Changes'
-        );
-        $connection->createTable($table);
-
-        /**
-         * Create table 'core_cache'
-         */
-        $table = $connection->newTable(
-            $installer->getTable('core_cache')
-        )->addColumn(
-            'id',
-            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
-            200,
-            ['nullable' => false, 'primary' => true],
-            'Cache Id'
-        )->addColumn(
-            'data',
-            \Magento\Framework\DB\Ddl\Table::TYPE_BLOB,
-            '2M',
-            [],
-            'Cache Data'
-        )->addColumn(
-            'create_time',
-            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
-            null,
-            [],
-            'Cache Creation Time'
-        )->addColumn(
-            'update_time',
-            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
-            null,
-            [],
-            'Time of Cache Updating'
-        )->addColumn(
-            'expire_time',
-            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
-            null,
-            [],
-            'Cache Expiration Time'
-        )->addIndex(
-            $installer->getIdxName('core_cache', ['expire_time']),
-            ['expire_time']
-        )->setComment(
-            'Caches'
-        );
-        $connection->createTable($table);
-
-        /**
-         * Create table 'core_cache_tag'
-         */
-        $table = $connection->newTable(
-            $installer->getTable('core_cache_tag')
-        )->addColumn(
-            'tag',
-            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
-            100,
-            ['nullable' => false, 'primary' => true],
-            'Tag'
-        )->addColumn(
-            'cache_id',
-            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
-            200,
-            ['nullable' => false, 'primary' => true],
-            'Cache Id'
-        )->addIndex(
-            $installer->getIdxName('core_cache_tag', ['cache_id']),
-            ['cache_id']
-        )->setComment(
-            'Tag Caches'
-        );
-        $connection->createTable($table);
-
-        /**
-         * Create table 'core_flag'
-         */
-        $table = $connection->newTable(
-            $installer->getTable('core_flag')
-        )->addColumn(
-            'flag_id',
-            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
-            null,
-            ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true],
-            'Flag Id'
-        )->addColumn(
-            'flag_code',
-            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
-            255,
-            ['nullable' => false],
-            'Flag Code'
-        )->addColumn(
-            'state',
-            \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
-            null,
-            ['unsigned' => true, 'nullable' => false, 'default' => '0'],
-            'Flag State'
-        )->addColumn(
-            'flag_data',
-            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
-            '64k',
-            [],
-            'Flag Data'
-        )->addColumn(
-            'last_update',
-            \Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
-            null,
-            ['nullable' => false, 'default' => \Magento\Framework\DB\Ddl\Table::TIMESTAMP_INIT_UPDATE],
-            'Date of Last Flag Update'
-        )->addIndex(
-            $installer->getIdxName('core_flag', ['last_update']),
-            ['last_update']
-        )->setComment(
-            'Flag'
-        );
-        $connection->createTable($table);
-
-        /**
-         * Drop Foreign Key on core_cache_tag.cache_id
-         */
-        $connection->dropForeignKey(
-            $installer->getTable('core_cache_tag'),
-            $installer->getFkName('core_cache_tag', 'cache_id', 'core_cache', 'id')
-        );
-
-        $installer->endSetup();
-
-    }
-}
diff --git a/app/code/Magento/Core/Test/Unit/Controller/Index/NotFoundTest.php b/app/code/Magento/Core/Test/Unit/Controller/Index/NotFoundTest.php
deleted file mode 100644
index e8ceda3d3a5bbed2558b98f823443f0e9201002e..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/Test/Unit/Controller/Index/NotFoundTest.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Core\Test\Unit\Controller\Index;
-
-use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
-
-class NotFoundTest extends \PHPUnit_Framework_TestCase
-{
-    public function testExecute()
-    {
-        /**
-         * @var \PHPUnit_Framework_MockObject_MockObject | \Magento\Framework\App\Response\Http
-         */
-        $responseMock = $this->getMockBuilder('Magento\Framework\App\Response\Http')
-            ->disableOriginalConstructor()
-            ->getMock();
-
-        $responseMock->expects($this->once())->method('setStatusHeader')->with(404, '1.1', 'Not Found');
-        $responseMock->expects($this->once())->method('setBody')->with('Requested resource not found');
-
-        $objectManager = new ObjectManager($this);
-
-        /**
-         * @var \Magento\Core\Controller\Index\NotFound
-         */
-        $controller = $objectManager->getObject(
-            'Magento\Core\Controller\Index\NotFound',
-            ['response' => $responseMock]
-        );
-
-        // Make the call to test
-        $controller->execute();
-    }
-}
diff --git a/app/code/Magento/Core/Test/Unit/Model/App/StateTest.php b/app/code/Magento/Core/Test/Unit/Model/App/StateTest.php
deleted file mode 100644
index 70a30989405ff292ca66ed649979877b267d1c75..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/Test/Unit/Model/App/StateTest.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Core\Test\Unit\Model\App;
-
-use Magento\Framework\App\State;
-
-class StateTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @param string $mode
-     * @dataProvider constructorDataProvider
-     */
-    public function testConstructor($mode)
-    {
-        $model = new \Magento\Framework\App\State(
-            $this->getMockForAbstractClass('Magento\Framework\Config\ScopeInterface', [], '', false),
-            $mode
-        );
-        $this->assertEquals($mode, $model->getMode());
-    }
-
-    /**
-     * @return array
-     */
-    public static function constructorDataProvider()
-    {
-        return [
-            'default mode' => [\Magento\Framework\App\State::MODE_DEFAULT],
-            'production mode' => [\Magento\Framework\App\State::MODE_PRODUCTION],
-            'developer mode' => [\Magento\Framework\App\State::MODE_DEVELOPER]
-        ];
-    }
-
-    /**
-     * @expectedException \Exception
-     * @expectedExceptionMessage Unknown application mode: unknown mode
-     */
-    public function testConstructorException()
-    {
-        new \Magento\Framework\App\State(
-            $this->getMockForAbstractClass('Magento\Framework\Config\ScopeInterface', [], '', false),
-            "unknown mode"
-        );
-    }
-}
diff --git a/app/code/Magento/Core/Test/Unit/Model/EntryPoint/_files/config.xml b/app/code/Magento/Core/Test/Unit/Model/EntryPoint/_files/config.xml
deleted file mode 100644
index b1c3bbd854f56ddf4ce0d12f797ecc123bfe0e45..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/Test/Unit/Model/EntryPoint/_files/config.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../app/code/Magento/Core/etc/config.xsd">
-    <default>
-        <resources>
-            <fixture_module_setup>
-                <setup/>
-            </fixture_module_setup>
-        </resources>
-    </default>
-</config>
diff --git a/app/code/Magento/Core/Test/Unit/Model/Resource/SessionTest.php b/app/code/Magento/Core/Test/Unit/Model/Resource/SessionTest.php
deleted file mode 100644
index 9e871c965e466f00111ec8a993d0a83e89972b5c..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/Test/Unit/Model/Resource/SessionTest.php
+++ /dev/null
@@ -1,267 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Core\Test\Unit\Model\Resource;
-
-class SessionTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * Session table name
-     */
-    const SESSION_TABLE = 'session_table_name';
-
-    /**#@+
-     * Table column names
-     */
-    const COLUMN_SESSION_ID = 'session_id';
-
-    const COLUMN_SESSION_DATA = 'session_data';
-
-    const COLUMN_SESSION_EXPIRES = 'session_expires';
-
-    /**#@-*/
-
-    /**
-     * Test select object
-     */
-    const SELECT_OBJECT = 'select_object';
-
-    /**#@+
-     * Test session data
-     */
-    const SESSION_ID = 'custom_session_id';
-
-    const SESSION_DATA = 'custom_session_data';
-
-    /**#@-*/
-
-    /**
-     * Model under test
-     *
-     * @var \Magento\Framework\Session\SaveHandler\DbTable
-     */
-    protected $_model;
-
-    protected function tearDown()
-    {
-        unset($this->_model);
-    }
-
-    /**
-     * Data provider for testRead
-     *
-     * @return array
-     */
-    public function readDataProvider()
-    {
-        return [
-            'session_encoded' => ['$dataEncoded' => true],
-            'session_not_encoded' => ['$dataEncoded' => false]
-        ];
-    }
-
-    /**
-     * @param bool $isDataEncoded
-     *
-     * @dataProvider readDataProvider
-     */
-    public function testRead($isDataEncoded)
-    {
-        $this->_prepareMockForRead($isDataEncoded);
-        $result = $this->_model->read(self::SESSION_ID);
-        $this->assertEquals(self::SESSION_DATA, $result);
-    }
-
-    /**
-     * Prepares mock for test model with specified connections
-     *
-     * @param \PHPUnit_Framework_MockObject_MockObject $connection
-     */
-    protected function _prepareResourceMock($connection)
-    {
-        $resource = $this->getMock(
-            'Magento\Framework\App\Resource',
-            [],
-            [],
-            '',
-            false,
-            false
-        );
-        $resource->expects($this->once())->method('getTableName')->will($this->returnValue(self::SESSION_TABLE));
-        $resource->expects($this->once())->method('getConnection')->will($this->returnValue($connection));
-
-        $this->_model = new \Magento\Framework\Session\SaveHandler\DbTable($resource);
-    }
-
-    /**
-     * Prepare mocks for testRead
-     *
-     * @param bool $isDataEncoded
-     */
-    protected function _prepareMockForRead($isDataEncoded)
-    {
-        $connection = $this->getMock(
-            'Magento\Framework\DB\Adapter\Pdo\Mysql',
-            ['select', 'from', 'where', 'fetchOne', 'isTableExists'],
-            [],
-            '',
-            false
-        );
-        $connection->expects($this->atLeastOnce())->method('isTableExists')->will($this->returnValue(true));
-        $connection->expects($this->once())->method('select')->will($this->returnSelf());
-        $connection->expects(
-            $this->once()
-        )->method(
-            'from'
-        )->with(
-            self::SESSION_TABLE,
-            [self::COLUMN_SESSION_DATA]
-        )->will(
-            $this->returnSelf()
-        );
-        $connection->expects(
-            $this->once()
-        )->method(
-            'where'
-        )->with(
-            self::COLUMN_SESSION_ID . ' = :' . self::COLUMN_SESSION_ID
-        )->will(
-            $this->returnValue(self::SELECT_OBJECT)
-        );
-
-        $sessionData = self::SESSION_DATA;
-        if ($isDataEncoded) {
-            $sessionData = base64_encode($sessionData);
-        }
-        $connection->expects(
-            $this->once()
-        )->method(
-            'fetchOne'
-        )->with(
-            self::SELECT_OBJECT,
-            [self::COLUMN_SESSION_ID => self::SESSION_ID]
-        )->will(
-            $this->returnValue($sessionData)
-        );
-
-        $this->_prepareResourceMock($connection);
-    }
-
-    /**
-     * Data provider for testWrite
-     *
-     * @return array
-     */
-    public function writeDataProvider()
-    {
-        return [
-            'session_exists' => ['$sessionExists' => true],
-            'session_not_exists' => ['$sessionExists' => false]
-        ];
-    }
-
-    /**
-     * @param bool $sessionExists
-     *
-     * @dataProvider writeDataProvider
-     */
-    public function testWrite($sessionExists)
-    {
-        $this->_prepareMockForWrite($sessionExists);
-        $this->assertTrue($this->_model->write(self::SESSION_ID, self::SESSION_DATA));
-    }
-
-    /**
-     * Prepare mocks for testWrite
-     *
-     * @param bool $sessionExists
-     */
-    protected function _prepareMockForWrite($sessionExists)
-    {
-        $connection = $this->getMock(
-            'Magento\Framework\DB\Adapter\Pdo\Mysql',
-            ['select', 'from', 'where', 'fetchOne', 'update', 'insert', 'isTableExists'],
-            [],
-            '',
-            false
-        );
-        $connection->expects($this->atLeastOnce())->method('isTableExists')->will($this->returnValue(true));
-        $connection->expects($this->once())->method('select')->will($this->returnSelf());
-        $connection->expects($this->once())->method('from')->with(self::SESSION_TABLE)->will($this->returnSelf());
-        $connection->expects(
-            $this->once()
-        )->method(
-            'where'
-        )->with(
-            self::COLUMN_SESSION_ID . ' = :' . self::COLUMN_SESSION_ID
-        )->will(
-            $this->returnValue(self::SELECT_OBJECT)
-        );
-        $connection->expects(
-            $this->once()
-        )->method(
-            'fetchOne'
-        )->with(
-            self::SELECT_OBJECT,
-            [self::COLUMN_SESSION_ID => self::SESSION_ID]
-        )->will(
-            $this->returnValue($sessionExists)
-        );
-
-        if ($sessionExists) {
-            $connection->expects($this->never())->method('insert');
-            $connection->expects(
-                $this->once()
-            )->method(
-                'update'
-            )->will(
-                $this->returnCallback([$this, 'verifyUpdate'])
-            );
-        } else {
-            $connection->expects(
-                $this->once()
-            )->method(
-                'insert'
-            )->will(
-                $this->returnCallback([$this, 'verifyInsert'])
-            );
-            $connection->expects($this->never())->method('update');
-        }
-
-        $this->_prepareResourceMock($connection);
-    }
-
-    /**
-     * Verify arguments of insert method
-     *
-     * @param string $table
-     * @param array $bind
-     */
-    public function verifyInsert($table, array $bind)
-    {
-        $this->assertEquals(self::SESSION_TABLE, $table);
-
-        $this->assertInternalType('int', $bind[self::COLUMN_SESSION_EXPIRES]);
-        $this->assertEquals(base64_encode(self::SESSION_DATA), $bind[self::COLUMN_SESSION_DATA]);
-        $this->assertEquals(self::SESSION_ID, $bind[self::COLUMN_SESSION_ID]);
-    }
-
-    /**
-     * Verify arguments of update method
-     *
-     * @param string $table
-     * @param array $bind
-     * @param array $where
-     */
-    public function verifyUpdate($table, array $bind, array $where)
-    {
-        $this->assertEquals(self::SESSION_TABLE, $table);
-
-        $this->assertInternalType('int', $bind[self::COLUMN_SESSION_EXPIRES]);
-        $this->assertEquals(base64_encode(self::SESSION_DATA), $bind[self::COLUMN_SESSION_DATA]);
-
-        $this->assertEquals([self::COLUMN_SESSION_ID . '=?' => self::SESSION_ID], $where);
-    }
-}
diff --git a/app/code/Magento/Core/composer.json b/app/code/Magento/Core/composer.json
deleted file mode 100644
index f32ffb2a52f0fb36d5621b638074afd2626acf2f..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/composer.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-    "name": "magento/module-core",
-    "description": "N/A",
-    "require": {
-        "php": "~5.5.0|~5.6.0",
-        "magento/module-authorization": "0.42.0-beta11",
-        "magento/module-store": "0.42.0-beta11",
-        "magento/framework": "0.42.0-beta11",
-        "lib-libxml": "*",
-        "magento/magento-composer-installer": "*"
-    },
-    "type": "magento2-module",
-    "version": "0.42.0-beta11",
-    "license": [
-        "OSL-3.0",
-        "AFL-3.0"
-    ],
-    "extra": {
-        "map": [
-            [
-                "*",
-                "Magento/Core"
-            ]
-        ]
-    }
-}
diff --git a/app/code/Magento/Core/etc/di.xml b/app/code/Magento/Core/etc/di.xml
deleted file mode 100644
index bb3e14b8fb1be9b9fd1bfd5109410ace0f0dad67..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/etc/di.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
-    <type name="Magento\Framework\App\Config\Initial\SchemaLocator">
-        <arguments>
-            <argument name="moduleName" xsi:type="string">Magento_Core</argument>
-        </arguments>
-    </type>
-    <type name="Magento\Framework\App\Router\Base">
-        <arguments>
-            <argument name="routerId" xsi:type="string">standard</argument>
-        </arguments>
-    </type>
-    <type name="Magento\Framework\DB\Helper">
-        <arguments>
-            <argument name="modulePrefix" xsi:type="string">core</argument>
-        </arguments>
-    </type>
-    <type name="Magento\Framework\Module\Setup\Migration">
-        <arguments>
-            <argument name="confPathToMapFile" xsi:type="string">app/etc/aliases_to_classes_map.json</argument>
-            <argument name="resourceName" xsi:type="string">core_setup</argument>
-            <argument name="moduleName" xsi:type="string">Magento_Core</argument>
-            <argument name="connectionName" xsi:type="string">\Magento\Framework\Setup\ModuleDataResourceInterface::DEFAULT_SETUP_CONNECTION</argument>
-        </arguments>
-    </type>
-    <virtualType name="Magento\Core\Model\Session\Storage" type="Magento\Framework\Session\Storage">
-        <arguments>
-            <argument name="namespace" xsi:type="string">core</argument>
-        </arguments>
-    </virtualType>
-    <type name="Magento\Framework\Session\Generic">
-        <arguments>
-            <argument name="storage" xsi:type="object">Magento\Core\Model\Session\Storage</argument>
-        </arguments>
-    </type>
-    <type name="Magento\Framework\Stdlib\DateTime\Timezone">
-        <arguments>
-            <argument name="defaultTimezonePath" xsi:type="const">Magento\Directory\Helper\Data::XML_PATH_DEFAULT_TIMEZONE</argument>
-            <argument name="scopeType" xsi:type="const">Magento\Store\Model\ScopeInterface::SCOPE_STORE</argument>
-        </arguments>
-    </type>
-    <type name="Magento\Framework\Locale\Resolver">
-        <plugin name="initLocale" type="Magento\Framework\Translate\Locale\Resolver\Plugin" sortOrder="10"/>
-        <arguments>
-            <argument name="defaultLocalePath" xsi:type="const">Magento\Directory\Helper\Data::XML_PATH_DEFAULT_LOCALE</argument>
-            <argument name="scopeType" xsi:type="const">Magento\Store\Model\ScopeInterface::SCOPE_STORE</argument>
-        </arguments>
-    </type>
-    <type name="Magento\Framework\View\Asset\PreProcessor\Pool">
-        <arguments>
-            <argument name="preProcessors" xsi:type="array">
-                <item name="less" xsi:type="array">
-                    <item name="css" xsi:type="array">
-                        <item name="less_css" xsi:type="string">Magento\Framework\Css\PreProcessor\Less</item>
-                        <item name="module_notation" xsi:type="string">Magento\Framework\View\Asset\PreProcessor\ModuleNotation</item>
-                    </item>
-                    <item name="less" xsi:type="array">
-                        <item name="magento_import" xsi:type="string">Magento\Framework\Less\PreProcessor\Instruction\MagentoImport</item>
-                        <item name="import" xsi:type="string">Magento\Framework\Less\PreProcessor\Instruction\Import</item>
-                    </item>
-                </item>
-                <item name="css" xsi:type="array">
-                    <item name="css" xsi:type="array">
-                        <item name="module_notation" xsi:type="string">Magento\Framework\View\Asset\PreProcessor\ModuleNotation</item>
-                    </item>
-                </item>
-            </argument>
-        </arguments>
-    </type>
-</config>
diff --git a/app/code/Magento/Core/etc/frontend/di.xml b/app/code/Magento/Core/etc/frontend/di.xml
deleted file mode 100644
index a86435f16a24a2380745cfe6fdb78b11c277768d..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/etc/frontend/di.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
-    <type name="Magento\Framework\App\FrontController">
-        <plugin name="requestPreprocessor" type="Magento\Store\App\FrontController\Plugin\RequestPreprocessor" sortOrder="50"/>
-    </type>
-</config>
diff --git a/app/code/Magento/Core/etc/frontend/routes.xml b/app/code/Magento/Core/etc/frontend/routes.xml
deleted file mode 100644
index 6fbeceb9b8ede1d5932b14e330a7a0be8aaba488..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/etc/frontend/routes.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/App/etc/routes.xsd">
-    <router id="standard">
-        <route id="core" frontName="core">
-            <module name="Magento_Core" />
-        </route>
-    </router>
-</config>
\ No newline at end of file
diff --git a/app/code/Magento/Core/etc/module.xml b/app/code/Magento/Core/etc/module.xml
deleted file mode 100644
index 665171f5a6ad8f1f6fe9e10384cb1cfd0e2d9b8c..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/etc/module.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
-    <module name="Magento_Core" setup_version="2.0.1">
-    </module>
-</config>
diff --git a/app/code/Magento/Core/etc/resources.xml b/app/code/Magento/Core/etc/resources.xml
deleted file mode 100644
index 067547b086c152f7b83474548961e1dbff9e3e75..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/etc/resources.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/App/etc/resources.xsd">
-    <resource name="core_setup" extends="default_setup" />
-</config>
diff --git a/app/code/Magento/Core/i18n/de_DE.csv b/app/code/Magento/Core/i18n/de_DE.csv
deleted file mode 100644
index 7299a44c88475bd6e9038603984d8f9f7ad3d47b..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/i18n/de_DE.csv
+++ /dev/null
@@ -1,42 +0,0 @@
-Configuration,Configuration
-"-- Please Select --","-- Bitte auswählen --"
-"Custom Variables","Angepasste Variablen"
-"Requested resource not found","Requested resource not found"
-"File %1 does not exist","File %1 does not exist"
-"File %1 is not readable","File %1 is not readable"
-"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
-"database ""%1""","database ""%1"""
-"Parent directory does not exist: %1","Parent directory does not exist: %1"
-"File system",Dateisystem
-"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
-"Wrong file info format","Falsches Format Dateiinfo"
-"Path ""%value%"" is protected and cannot be used.","Der Pfad ""%value%"" ist geschützt und kann nicht verwendet werden."
-"Path ""%value%"" is not available and cannot be used.","Der Pfad ""%value%"" ist nicht verfügbar und kann nicht verwendet werden."
-"Path ""%value%"" may not include parent directory traversal (""../"", ""..\").","Der Pfad ""%value%"" darf keinen Verweis auf das übergeordnete Verzeichnis enthalten (""../"", ""..\")."
-"Please set available and/or protected paths list(s) before validation.","Bitte stellen Sie vor der Bestätigung die Liste(n) der verfügbaren und/oder geschützten Pfade ein."
-"File with an extension ""%value%"" is protected and cannot be uploaded","Dateien mit der Endung ""%value%"" sind geschützt und können nicht hochgeladen werden"
-"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
-"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
-"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
-"Start date cannot be greater than end date.","Das Anfangsdatum darf nicht nach dem Enddatum liegen."
-"Your design change for the specified store intersects with another one, please specify another date range.","Ihre Design-Änderung für den ausgewählten Store überschneidet sich mit einer anderen, bitte wählen Sie einen anderen Zeitraum."
-"Unable to create directory: %1","Unable to create directory: %1"
-"Unable to save file: %1","Unable to save file: %1"
-Copy,Copy
-"Theme isn't deletable.","Theme isn't deletable."
-"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
-"Variable Code must be unique.","Variabler Code muß eindeutig sein."
-"Validation has failed.","Prüfung fehlgeschlagen."
-%1,%1
-"Insert Variable...","Insert Variable..."
-"System(config.xml, local.xml) and modules configuration files(config.xml).","System(config.xml, local.xml) and modules configuration files(config.xml)."
-Layouts,Layouts
-"Layout building instructions.","Layout building instructions."
-"Blocks HTML output","Blocks HTML output"
-"Page blocks HTML.","Page blocks HTML."
-"View files fallback","View files fallback"
-"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
-"View files pre-processing","View files pre-processing"
-"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
-"Collections Data","Collections Data"
-"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Core/i18n/en_US.csv b/app/code/Magento/Core/i18n/en_US.csv
deleted file mode 100644
index 1505afedfcd4b501b6b295521c78d29a73a86ea2..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/i18n/en_US.csv
+++ /dev/null
@@ -1,42 +0,0 @@
-Configuration,Configuration
-"-- Please Select --","-- Please Select --"
-"Custom Variables","Custom Variables"
-"Requested resource not found","Requested resource not found"
-"File %1 does not exist","File %1 does not exist"
-"File %1 is not readable","File %1 is not readable"
-"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
-"database ""%1""","database ""%1"""
-"Parent directory does not exist: %1","Parent directory does not exist: %1"
-"File system","File system"
-"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
-"Wrong file info format","Wrong file info format"
-"Path ""%value%"" is protected and cannot be used.","Path ""%value%"" is protected and cannot be used."
-"Path ""%value%"" is not available and cannot be used.","Path ""%value%"" is not available and cannot be used."
-"Path ""%value%"" may not include parent directory traversal (""../"", ""..\").","Path ""%value%"" may not include parent directory traversal (""../"", ""..\")."
-"Please set available and/or protected paths list(s) before validation.","Please set available and/or protected paths list(s) before validation."
-"File with an extension ""%value%"" is protected and cannot be uploaded","File with an extension ""%value%"" is protected and cannot be uploaded"
-"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
-"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
-"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
-"Start date cannot be greater than end date.","Start date cannot be greater than end date."
-"Your design change for the specified store intersects with another one, please specify another date range.","Your design change for the specified store intersects with another one, please specify another date range."
-"Unable to create directory: %1","Unable to create directory: %1"
-"Unable to save file: %1","Unable to save file: %1"
-Copy,Copy
-"Theme isn't deletable.","Theme isn't deletable."
-"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
-"Variable Code must be unique.","Variable Code must be unique."
-"Validation has failed.","Validation has failed."
-%1,%1
-"Insert Variable...","Insert Variable..."
-"System(config.xml, local.xml) and modules configuration files(config.xml).","System(config.xml, local.xml) and modules configuration files(config.xml)."
-Layouts,Layouts
-"Layout building instructions.","Layout building instructions."
-"Blocks HTML output","Blocks HTML output"
-"Page blocks HTML.","Page blocks HTML."
-"View files fallback","View files fallback"
-"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
-"View files pre-processing","View files pre-processing"
-"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
-"Collections Data","Collections Data"
-"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Core/i18n/es_ES.csv b/app/code/Magento/Core/i18n/es_ES.csv
deleted file mode 100644
index eb11b11e933fbe7ccd774b0c82482028a0eb4769..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/i18n/es_ES.csv
+++ /dev/null
@@ -1,42 +0,0 @@
-Configuration,Configuration
-"-- Please Select --","-- Seleccionar, por favor --"
-"Custom Variables","Variables personalizadas"
-"Requested resource not found","Requested resource not found"
-"File %1 does not exist","File %1 does not exist"
-"File %1 is not readable","File %1 is not readable"
-"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
-"database ""%1""","database ""%1"""
-"Parent directory does not exist: %1","Parent directory does not exist: %1"
-"File system","Sistema de archivos"
-"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
-"Wrong file info format","Formato de información del archivo incorrecto"
-"Path ""%value%"" is protected and cannot be used.","La ruta ""%value%"" está protegida y no se puede utilizar."
-"Path ""%value%"" is not available and cannot be used.","La ruta ""%value%"" no está disponible y no puede usarse."
-"Path ""%value%"" may not include parent directory traversal (""../"", ""..\").","La ruta ""%value%"" no puede incluir accesos de ejecución transversal (""../"", ""..\")."
-"Please set available and/or protected paths list(s) before validation.","Por favor, indique la(s) lista(s) de rutas disponibles y/o protegidas antes de la validación."
-"File with an extension ""%value%"" is protected and cannot be uploaded","El archivo con extensión ""%value%"" está protegido y no se puede subir"
-"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
-"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
-"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
-"Start date cannot be greater than end date.","La fecha de inicio no puede ser mayor que la de fin."
-"Your design change for the specified store intersects with another one, please specify another date range.","Su cambio de diseño para la tienda especificada se superpone con otro. Especifique otro rango de fecha."
-"Unable to create directory: %1","Unable to create directory: %1"
-"Unable to save file: %1","Unable to save file: %1"
-Copy,Copy
-"Theme isn't deletable.","Theme isn't deletable."
-"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
-"Variable Code must be unique.","El código de variable debe ser único."
-"Validation has failed.","Falló la validación."
-%1,%1
-"Insert Variable...","Insert Variable..."
-"System(config.xml, local.xml) and modules configuration files(config.xml).","System(config.xml, local.xml) and modules configuration files(config.xml)."
-Layouts,Layouts
-"Layout building instructions.","Layout building instructions."
-"Blocks HTML output","Blocks HTML output"
-"Page blocks HTML.","Page blocks HTML."
-"View files fallback","View files fallback"
-"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
-"View files pre-processing","View files pre-processing"
-"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
-"Collections Data","Collections Data"
-"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Core/i18n/fr_FR.csv b/app/code/Magento/Core/i18n/fr_FR.csv
deleted file mode 100644
index 7afba82f7fea613c31c1d5403e634c92e2354c19..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/i18n/fr_FR.csv
+++ /dev/null
@@ -1,42 +0,0 @@
-Configuration,Configuration
-"-- Please Select --","-- Veuillez sélectionner --"
-"Custom Variables","Variables sur mesure"
-"Requested resource not found","Requested resource not found"
-"File %1 does not exist","File %1 does not exist"
-"File %1 is not readable","File %1 is not readable"
-"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
-"database ""%1""","database ""%1"""
-"Parent directory does not exist: %1","Parent directory does not exist: %1"
-"File system","Système de fichiers"
-"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
-"Wrong file info format","Informations du format de fichiers incorrectes"
-"Path ""%value%"" is protected and cannot be used.","Le chemin ""%value%"" est protégé et ne peut pas être utilisé."
-"Path ""%value%"" is not available and cannot be used.","Le chemin ""%value%"" est indisponible et ne peut être utilisé."
-"Path ""%value%"" may not include parent directory traversal (""../"", ""..\").","Il se peut que le chemin ""%value%"" ne contienne pas de traversée de répertoire parent (""../"", ""..\")."
-"Please set available and/or protected paths list(s) before validation.","Veuillez définir la/les liste(s) de chemins disponibles et/ou protégés avant la validation."
-"File with an extension ""%value%"" is protected and cannot be uploaded","Le fichier avec une ""%valeur%"" d'extension est protégé et ne peut être téléchargé."
-"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
-"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
-"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
-"Start date cannot be greater than end date.","La date de début ne peut pas être après la date de fin."
-"Your design change for the specified store intersects with another one, please specify another date range.","Votre changement de dessin pour la boutique spécifiée se mélange à une autre, veuillez spécifier une autre fourchette de dates."
-"Unable to create directory: %1","Unable to create directory: %1"
-"Unable to save file: %1","Unable to save file: %1"
-Copy,Copy
-"Theme isn't deletable.","Theme isn't deletable."
-"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
-"Variable Code must be unique.","La variable code doit être unique."
-"Validation has failed.","Validation a échouée"
-%1,%1
-"Insert Variable...","Insert Variable..."
-"System(config.xml, local.xml) and modules configuration files(config.xml).","System(config.xml, local.xml) and modules configuration files(config.xml)."
-Layouts,Layouts
-"Layout building instructions.","Layout building instructions."
-"Blocks HTML output","Blocks HTML output"
-"Page blocks HTML.","Page blocks HTML."
-"View files fallback","View files fallback"
-"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
-"View files pre-processing","View files pre-processing"
-"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
-"Collections Data","Collections Data"
-"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Core/i18n/nl_NL.csv b/app/code/Magento/Core/i18n/nl_NL.csv
deleted file mode 100644
index 7b321e76f829245e6e1a05eed30ed0f7556590b4..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/i18n/nl_NL.csv
+++ /dev/null
@@ -1,42 +0,0 @@
-Configuration,Configuration
-"-- Please Select --","-- Selecteer a.u.b.--"
-"Custom Variables","Aangepaste variabelen"
-"Requested resource not found","Requested resource not found"
-"File %1 does not exist","File %1 does not exist"
-"File %1 is not readable","File %1 is not readable"
-"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
-"database ""%1""","database ""%1"""
-"Parent directory does not exist: %1","Parent directory does not exist: %1"
-"File system",Bestandssysteem
-"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
-"Wrong file info format","Verkeerde bestandsinformatiebestand"
-"Path ""%value%"" is protected and cannot be used.","Pad ""%value%"" is beschermd en kan niet worden gebruikt."
-"Path ""%value%"" is not available and cannot be used.","Pad ""%value%"" is niet beschikbaar en kan niet gebruikt worden."
-"Path ""%value%"" may not include parent directory traversal (""../"", ""..\").","Pad ""%value%"" mag geen parent directory traversal bevatten (""../"", ""..\")."
-"Please set available and/or protected paths list(s) before validation.","Stel beschikbare en/of beschermde pad lijst(en) in voor validatie."
-"File with an extension ""%value%"" is protected and cannot be uploaded","Bestand met de uitgang ""%value%"" is beschermd en kan niet worden geüpload."
-"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
-"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
-"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
-"Start date cannot be greater than end date.","Begin datum kan niet later zijn dan eind datum."
-"Your design change for the specified store intersects with another one, please specify another date range.","Uw ontwerp verandering voor de gespecificeerde store komt in conflict met een andere, specificeer a.u.b. een andere datumrange."
-"Unable to create directory: %1","Unable to create directory: %1"
-"Unable to save file: %1","Unable to save file: %1"
-Copy,Copy
-"Theme isn't deletable.","Theme isn't deletable."
-"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
-"Variable Code must be unique.","Variabele Code moet uniek zijn."
-"Validation has failed.","Validatie is mislukt."
-%1,%1
-"Insert Variable...","Insert Variable..."
-"System(config.xml, local.xml) and modules configuration files(config.xml).","System(config.xml, local.xml) and modules configuration files(config.xml)."
-Layouts,Layouts
-"Layout building instructions.","Layout building instructions."
-"Blocks HTML output","Blocks HTML output"
-"Page blocks HTML.","Page blocks HTML."
-"View files fallback","View files fallback"
-"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
-"View files pre-processing","View files pre-processing"
-"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
-"Collections Data","Collections Data"
-"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Core/i18n/pt_BR.csv b/app/code/Magento/Core/i18n/pt_BR.csv
deleted file mode 100644
index cd8f160c2165c578e9847a6224bb5da8a0699c35..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/i18n/pt_BR.csv
+++ /dev/null
@@ -1,42 +0,0 @@
-Configuration,Configuration
-"-- Please Select --","- Por Favor Selecione -"
-"Custom Variables","Variáveis de Personalização."
-"Requested resource not found","Requested resource not found"
-"File %1 does not exist","File %1 does not exist"
-"File %1 is not readable","File %1 is not readable"
-"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
-"database ""%1""","database ""%1"""
-"Parent directory does not exist: %1","Parent directory does not exist: %1"
-"File system","Sistema de arquivo"
-"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
-"Wrong file info format","Formato de arquivo de informação errado"
-"Path ""%value%"" is protected and cannot be used.","Caminho ""%valor%"" é protegido e não pode ser usado."
-"Path ""%value%"" is not available and cannot be used.","Caminho ""%valor%"" não está disponível e não pode ser usado."
-"Path ""%value%"" may not include parent directory traversal (""../"", ""..\").","Caminho ""%valor%"" não pode incluir passagem pelo diretório principal (""../"", ""..\")."
-"Please set available and/or protected paths list(s) before validation.","Por favor defina lista(s) de caminhos disponíveis e/ou protegidos antes da validação."
-"File with an extension ""%value%"" is protected and cannot be uploaded","O arquivo de extensão ""%value%"" está protegido, e seu upload não pode ser feito"
-"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
-"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
-"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
-"Start date cannot be greater than end date.","Data de início não pode ser maior que a data do término."
-"Your design change for the specified store intersects with another one, please specify another date range.","Sua mudança de design para a loja especificada cruza com outra, por favor especifique outro intervalo de datas."
-"Unable to create directory: %1","Unable to create directory: %1"
-"Unable to save file: %1","Unable to save file: %1"
-Copy,Copy
-"Theme isn't deletable.","Theme isn't deletable."
-"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
-"Variable Code must be unique.","Código da Variável deve ser único."
-"Validation has failed.","Validação falhou."
-%1,%1
-"Insert Variable...","Insert Variable..."
-"System(config.xml, local.xml) and modules configuration files(config.xml).","System(config.xml, local.xml) and modules configuration files(config.xml)."
-Layouts,Layouts
-"Layout building instructions.","Layout building instructions."
-"Blocks HTML output","Blocks HTML output"
-"Page blocks HTML.","Page blocks HTML."
-"View files fallback","View files fallback"
-"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
-"View files pre-processing","View files pre-processing"
-"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
-"Collections Data","Collections Data"
-"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Core/i18n/zh_CN.csv b/app/code/Magento/Core/i18n/zh_CN.csv
deleted file mode 100644
index b1066712eddd06607c3442aee3372575c4efc924..0000000000000000000000000000000000000000
--- a/app/code/Magento/Core/i18n/zh_CN.csv
+++ /dev/null
@@ -1,42 +0,0 @@
-Configuration,Configuration
-"-- Please Select --","-- 请选择 --"
-"Custom Variables",自定义变量
-"Requested resource not found","Requested resource not found"
-"File %1 does not exist","File %1 does not exist"
-"File %1 is not readable","File %1 is not readable"
-"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
-"database ""%1""","database ""%1"""
-"Parent directory does not exist: %1","Parent directory does not exist: %1"
-"File system",文件系统
-"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
-"Wrong file info format",错误的文件信息格式
-"Path ""%value%"" is protected and cannot be used.","路径 ""%value%"" 受保护,无法使用。"
-"Path ""%value%"" is not available and cannot be used.","路径 ""%value%"" 不可用,因此无法使用。"
-"Path ""%value%"" may not include parent directory traversal (""../"", ""..\").","路径 ""%value%"" 可能不包含父目录遍历 (""../"", ""..\")."
-"Please set available and/or protected paths list(s) before validation.",请设置有效并/或受保护的路径列表,随后再验证。
-"File with an extension ""%value%"" is protected and cannot be uploaded","扩展为 ""%value%"" 的文件受到保护,无法上传"
-"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
-"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
-"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
-"Start date cannot be greater than end date.",开始日期不能大于结束日期。
-"Your design change for the specified store intersects with another one, please specify another date range.",您对指定商店设计的更改和另一个有交叉,请重新指定日期范围。
-"Unable to create directory: %1","Unable to create directory: %1"
-"Unable to save file: %1","Unable to save file: %1"
-Copy,Copy
-"Theme isn't deletable.","Theme isn't deletable."
-"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
-"Variable Code must be unique.",变量代码必须是唯一的。
-"Validation has failed.",验证失败。
-%1,%1
-"Insert Variable...","Insert Variable..."
-"System(config.xml, local.xml) and modules configuration files(config.xml).","System(config.xml, local.xml) and modules configuration files(config.xml)."
-Layouts,Layouts
-"Layout building instructions.","Layout building instructions."
-"Blocks HTML output","Blocks HTML output"
-"Page blocks HTML.","Page blocks HTML."
-"View files fallback","View files fallback"
-"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
-"View files pre-processing","View files pre-processing"
-"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
-"Collections Data","Collections Data"
-"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Customer/etc/config.xml b/app/code/Magento/Customer/etc/config.xml
index 12d5639d3636fc6ad657bfe0b8f20da83260f10b..981e8734fd3d1b44983ad150b25d5b284e20874b 100644
--- a/app/code/Magento/Customer/etc/config.xml
+++ b/app/code/Magento/Customer/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <customer>
             <account_share>
diff --git a/app/code/Magento/Customer/etc/frontend/page_types.xml b/app/code/Magento/Customer/etc/frontend/page_types.xml
index 3b4093e12cc0bb6a0250e33c66a7aa1a0ad3fb78..e895bca1e8bd6ec9f833b43d0b15754d5b0e1495 100644
--- a/app/code/Magento/Customer/etc/frontend/page_types.xml
+++ b/app/code/Magento/Customer/etc/frontend/page_types.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="customer_account_confirmation" label="Customer Account Confirmation"/>
     <type id="customer_account_create" label="Customer Account Registration Form"/>
     <type id="customer_account_createpassword" label="Reset a Password"/>
diff --git a/app/code/Magento/CustomerImportExport/etc/config.xml b/app/code/Magento/CustomerImportExport/etc/config.xml
index 02000ca611d79749eb2fa68a74a39ff5bd3953be..000eef6ea21c83cdda49761e7cc61d40484fa993 100644
--- a/app/code/Magento/CustomerImportExport/etc/config.xml
+++ b/app/code/Magento/CustomerImportExport/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <export>
             <customer_page_size>
diff --git a/app/code/Magento/DesignEditor/etc/config.xml b/app/code/Magento/DesignEditor/etc/config.xml
index c343d59d0bb703575be2d01364566f11d74aafd6..f977f5d456b01c2edeed42f04491d9050fd87e6a 100644
--- a/app/code/Magento/DesignEditor/etc/config.xml
+++ b/app/code/Magento/DesignEditor/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <theme>
             <customization>
diff --git a/app/code/Magento/Developer/etc/config.xml b/app/code/Magento/Developer/etc/config.xml
index a669e0d6b6d8407587ffb65f7e694d68497b6214..e89e173e832768926551bac312375247c148205b 100644
--- a/app/code/Magento/Developer/etc/config.xml
+++ b/app/code/Magento/Developer/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <dev>
             <restrict>
diff --git a/app/code/Magento/Dhl/composer.json b/app/code/Magento/Dhl/composer.json
index 024ef97396a6f20436526ca37ff0c47b86c4bb56..6c64a3d0f59f0196fa54970d40fb641cf582323c 100644
--- a/app/code/Magento/Dhl/composer.json
+++ b/app/code/Magento/Dhl/composer.json
@@ -8,7 +8,6 @@
         "magento/module-shipping": "0.42.0-beta11",
         "magento/module-backend": "0.42.0-beta11",
         "magento/module-directory": "0.42.0-beta11",
-        "magento/module-core": "0.42.0-beta11",
         "magento/module-sales": "0.42.0-beta11",
         "magento/module-checkout": "0.42.0-beta11",
         "magento/module-catalog": "0.42.0-beta11",
diff --git a/app/code/Magento/Dhl/etc/config.xml b/app/code/Magento/Dhl/etc/config.xml
index c491e6e10f53538c51ba195997e5be8ca846f498..0d60e087a0e35b88c4d858b5332e5338dea2385c 100644
--- a/app/code/Magento/Dhl/etc/config.xml
+++ b/app/code/Magento/Dhl/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <system>
             <media_storage_configuration>
diff --git a/app/code/Magento/Directory/composer.json b/app/code/Magento/Directory/composer.json
index 8e66ab394fbb810a2f46479afb74b859b3472301..d13968038ae92aa7d937ba680efeaaf6f043de8f 100644
--- a/app/code/Magento/Directory/composer.json
+++ b/app/code/Magento/Directory/composer.json
@@ -5,7 +5,6 @@
         "php": "~5.5.0|~5.6.0",
         "magento/module-config": "0.42.0-beta11",
         "magento/module-store": "0.42.0-beta11",
-        "magento/module-core": "0.42.0-beta11",
         "magento/module-backend": "0.42.0-beta11",
         "magento/framework": "0.42.0-beta11",
         "lib-libxml": "*",
diff --git a/app/code/Magento/Directory/etc/config.xml b/app/code/Magento/Directory/etc/config.xml
index 60328d17d8c195a18c7ff7434a4f22abd4aac4ab..54cec22d63ee92e7b5143778d51b003a09dc604f 100644
--- a/app/code/Magento/Directory/etc/config.xml
+++ b/app/code/Magento/Directory/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <system>
             <currency>
diff --git a/app/code/Magento/Directory/etc/module.xml b/app/code/Magento/Directory/etc/module.xml
index c2f5119fbd915909fea91d4cdabe08b702d6de7a..385b4422a936a867361ddb7f3c0cc21f94f5b52b 100644
--- a/app/code/Magento/Directory/etc/module.xml
+++ b/app/code/Magento/Directory/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Directory" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
         </sequence>
     </module>
diff --git a/app/code/Magento/Downloadable/Api/LinkRepositoryInterface.php b/app/code/Magento/Downloadable/Api/LinkRepositoryInterface.php
index 58bad33a356c9262d1bee8cb6308ed87560e8d3c..a8bd6f83d9be190834e0e92d34c039010a4d870c 100644
--- a/app/code/Magento/Downloadable/Api/LinkRepositoryInterface.php
+++ b/app/code/Magento/Downloadable/Api/LinkRepositoryInterface.php
@@ -12,29 +12,29 @@ interface LinkRepositoryInterface
     /**
      * List of samples for downloadable product
      *
-     * @param string $productSku
+     * @param string $sku
      * @return \Magento\Downloadable\Api\Data\SampleInterface[]
      */
-    public function getSamples($productSku);
+    public function getSamples($sku);
 
     /**
      * List of links with associated samples
      *
-     * @param string $productSku
+     * @param string $sku
      * @return \Magento\Downloadable\Api\Data\LinkInterface[]
      */
-    public function getLinks($productSku);
+    public function getLinks($sku);
 
     /**
      * Update downloadable link of the given product (link type and its resources cannot be changed)
      *
-     * @param string $productSku
+     * @param string $sku
      * @param \Magento\Downloadable\Api\Data\LinkContentInterface $linkContent
      * @param int $linkId
      * @param bool $isGlobalScopeContent
      * @return int
      */
-    public function save($productSku, LinkContentInterface $linkContent, $linkId = null, $isGlobalScopeContent = false);
+    public function save($sku, LinkContentInterface $linkContent, $linkId = null, $isGlobalScopeContent = false);
 
     /**
      * Delete downloadable link
diff --git a/app/code/Magento/Downloadable/Model/LinkRepository.php b/app/code/Magento/Downloadable/Model/LinkRepository.php
index 586c22a32d4dc5dc4a1ce18ca029fb6feb4feee3..217e5ae59cea4f9dc81bfa6079a2bd49f1efc022 100644
--- a/app/code/Magento/Downloadable/Model/LinkRepository.php
+++ b/app/code/Magento/Downloadable/Model/LinkRepository.php
@@ -90,11 +90,11 @@ class LinkRepository implements \Magento\Downloadable\Api\LinkRepositoryInterfac
     /**
      * {@inheritdoc}
      */
-    public function getLinks($productSku)
+    public function getLinks($sku)
     {
         $linkList = [];
         /** @var \Magento\Catalog\Model\Product $product */
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         $links = $this->downloadableType->getLinks($product);
         /** @var \Magento\Downloadable\Model\Link $link */
         foreach ($links as $link) {
@@ -150,11 +150,11 @@ class LinkRepository implements \Magento\Downloadable\Api\LinkRepositoryInterfac
     /**
      * {@inheritdoc}
      */
-    public function getSamples($productSku)
+    public function getSamples($sku)
     {
         $sampleList = [];
         /** @var \Magento\Catalog\Model\Product $product */
-        $product = $this->productRepository->get($productSku);
+        $product = $this->productRepository->get($sku);
         $samples = $this->downloadableType->getSamples($product);
         /** @var \Magento\Downloadable\Model\Sample $sample */
         foreach ($samples as $sample) {
@@ -181,9 +181,9 @@ class LinkRepository implements \Magento\Downloadable\Api\LinkRepositoryInterfac
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
-    public function save($productSku, LinkContentInterface $linkContent, $linkId = null, $isGlobalScopeContent = false)
+    public function save($sku, LinkContentInterface $linkContent, $linkId = null, $isGlobalScopeContent = false)
     {
-        $product = $this->productRepository->get($productSku, true);
+        $product = $this->productRepository->get($sku, true);
         if ($linkId) {
 
             /** @var $link \Magento\Downloadable\Model\Link */
@@ -222,7 +222,7 @@ class LinkRepository implements \Magento\Downloadable\Api\LinkRepositoryInterfac
                 ->save();
             return $link->getId();
         } else {
-            $product = $this->productRepository->get($productSku, true);
+            $product = $this->productRepository->get($sku, true);
             if ($product->getTypeId() !== \Magento\Downloadable\Model\Product\Type::TYPE_DOWNLOADABLE) {
                 throw new InputException('Product type of the product must be \'downloadable\'.');
             }
diff --git a/app/code/Magento/Downloadable/etc/config.xml b/app/code/Magento/Downloadable/etc/config.xml
index e0460f6028eeb68ff4c51eb964a9d97e9ac32198..4cd8938ad25e8124510f74e2ce8e4395de9573ef 100644
--- a/app/code/Magento/Downloadable/etc/config.xml
+++ b/app/code/Magento/Downloadable/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <catalog>
             <downloadable>
diff --git a/app/code/Magento/Downloadable/etc/frontend/page_types.xml b/app/code/Magento/Downloadable/etc/frontend/page_types.xml
index caa1839665d6da8eb350758d7d39f415e3bb1bba..609bc5837c17881bbedddb11c42a5e61e8de729a 100644
--- a/app/code/Magento/Downloadable/etc/frontend/page_types.xml
+++ b/app/code/Magento/Downloadable/etc/frontend/page_types.xml
@@ -5,6 +5,6 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="downloadable_customer_products" label="Customer My Account Downloadable Items"/>
 </page_types>
diff --git a/app/code/Magento/Downloadable/etc/webapi.xml b/app/code/Magento/Downloadable/etc/webapi.xml
index 7a95a353ded05feb876d90d6b96361cce19ef9eb..0291fe5322f8328380ab63b58dfd7b8b8322dbe2 100644
--- a/app/code/Magento/Downloadable/etc/webapi.xml
+++ b/app/code/Magento/Downloadable/etc/webapi.xml
@@ -7,25 +7,25 @@
 -->
 <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
-    <route url="/V1/products/:productSku/downloadable-links" method="GET">
+    <route url="/V1/products/:sku/downloadable-links" method="GET">
         <service class="Magento\Downloadable\Api\LinkRepositoryInterface" method="getLinks"/>
         <resources>
             <resource ref="Magento_Downloadable::downloadable" />
         </resources>
     </route>
-    <route url="/V1/products/:productSku/downloadable-links/samples" method="GET">
+    <route url="/V1/products/:sku/downloadable-links/samples" method="GET">
         <service class="Magento\Downloadable\Api\LinkRepositoryInterface" method="getSamples"/>
         <resources>
             <resource ref="Magento_Downloadable::downloadable" />
         </resources>
     </route>
-    <route url="/V1/products/:productSku/downloadable-links" method="POST">
+    <route url="/V1/products/:sku/downloadable-links" method="POST">
         <service class="Magento\Downloadable\Api\LinkRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Downloadable::downloadable" />
         </resources>
     </route>
-    <route url="/V1/products/:productSku/downloadable-links/:linkId" method="PUT">
+    <route url="/V1/products/:sku/downloadable-links/:linkId" method="PUT">
         <service class="Magento\Downloadable\Api\LinkRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Downloadable::downloadable" />
@@ -37,13 +37,13 @@
             <resource ref="Magento_Downloadable::downloadable" />
         </resources>
     </route>
-    <route url="/V1/products/:productSku/downloadable-links/samples" method="POST">
+    <route url="/V1/products/:sku/downloadable-links/samples" method="POST">
         <service class="Magento\Downloadable\Api\SampleRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Downloadable::downloadable" />
         </resources>
     </route>
-    <route url="/V1/products/:productSku/downloadable-links/samples/:sampleId" method="PUT">
+    <route url="/V1/products/:sku/downloadable-links/samples/:sampleId" method="PUT">
     <service class="Magento\Downloadable\Api\SampleRepositoryInterface" method="save"/>
     <resources>
         <resource ref="Magento_Downloadable::downloadable" />
diff --git a/app/code/Magento/Eav/Model/EavCustomAttributeTypeLocator.php b/app/code/Magento/Eav/Model/EavCustomAttributeTypeLocator.php
new file mode 100644
index 0000000000000000000000000000000000000000..958c645190806499496440018d332fb1caf0f750
--- /dev/null
+++ b/app/code/Magento/Eav/Model/EavCustomAttributeTypeLocator.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Eav\Model;
+
+use Magento\Eav\Api\AttributeRepositoryInterface;
+use Magento\Framework\Exception\NoSuchEntityException;
+use Magento\Framework\Webapi\CustomAttributeTypeLocatorInterface;
+
+class EavCustomAttributeTypeLocator implements CustomAttributeTypeLocatorInterface
+{
+    /**
+     * @var AttributeRepositoryInterface
+     */
+    private $attributeRepository;
+
+    /**
+     * @var array
+     */
+    private $serviceEntityTypeMap;
+
+    /**
+     * @var array
+     */
+    private $serviceBackendModelDataInterfaceMap;
+
+    /**
+     * Initialize EavCustomAttributeTypeLocator
+     *
+     * @param AttributeRepositoryInterface $attributeRepository
+     * @param array $serviceEntityTypeMap
+     * @param array $serviceBackendModelDataInterfaceMap
+     */
+    public function __construct(
+        AttributeRepositoryInterface $attributeRepository,
+        array $serviceEntityTypeMap = [],
+        array $serviceBackendModelDataInterfaceMap = []
+    ) {
+        $this->attributeRepository = $attributeRepository;
+        $this->serviceEntityTypeMap = $serviceEntityTypeMap;
+        $this->serviceBackendModelDataInterfaceMap = $serviceBackendModelDataInterfaceMap;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getType($attributeCode, $serviceClass)
+    {
+        if (!$serviceClass || !$attributeCode || !isset($this->serviceEntityTypeMap[$serviceClass])
+            || !isset($this->serviceBackendModelDataInterfaceMap[$serviceClass])
+        ) {
+            return null;
+        }
+
+        try {
+            $backendModel = $this->attributeRepository
+                ->get($this->serviceEntityTypeMap[$serviceClass], $attributeCode)
+                ->getBackendModel();
+        } catch (NoSuchEntityException $e) {
+            return null;
+        }
+
+        $dataInterface = isset($this->serviceBackendModelDataInterfaceMap[$serviceClass][$backendModel])
+            ? $this->serviceBackendModelDataInterfaceMap[$serviceClass][$backendModel]
+            : null;
+
+        return $dataInterface;
+    }
+}
diff --git a/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Created.php b/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Created.php
index 5e14ddca8729ee2299fc60b3c4dd28488d75eb10..b12ddf75a716d052c30e7b0a2d4edeb623f076dc 100644
--- a/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Created.php
+++ b/app/code/Magento/Eav/Model/Entity/Attribute/Backend/Time/Created.php
@@ -26,7 +26,7 @@ class Created extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBacken
     /**
      * Set created date
      *
-     * @param \Magento\Core\Model\Object $object
+     * @param \Magento\Framework\Model\AbstractModel $object
      * @return $this
      */
     public function beforeSave($object)
diff --git a/app/code/Magento/Eav/Test/Unit/Model/EavCustomAttributeTypeLocatorTest.php b/app/code/Magento/Eav/Test/Unit/Model/EavCustomAttributeTypeLocatorTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..89690484c74835f76a52415371a65c2f3ce6c531
--- /dev/null
+++ b/app/code/Magento/Eav/Test/Unit/Model/EavCustomAttributeTypeLocatorTest.php
@@ -0,0 +1,150 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+// @codingStandardsIgnoreFile
+
+namespace Magento\Eav\Test\Unit\Model;
+
+use Magento\Eav\Api\AttributeRepositoryInterface;
+use Magento\Eav\Model\EavCustomAttributeTypeLocator;
+
+class EavCustomAttributeTypeLocatorTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var EavCustomAttributeTypeLocator
+     */
+    private $eavCustomAttributeTypeLocator;
+
+    /**
+     * @var AttributeRepositoryInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    private $attributeRepository = [];
+
+    protected function setUp()
+    {
+        $this->attributeRepository = $this->getMock(
+            'Magento\Eav\Model\AttributeRepository',
+            ['get'],
+            [],
+            '',
+            false
+        );
+    }
+
+    /**
+     * Test getType method
+     *
+     * @param string $attributeCode
+     * @param string $serviceClass
+     * @param array $attributeRepositoryResponse
+     * @param array $serviceEntityTypeMapData
+     * @param array $serviceBackendModelDataInterfaceMapData
+     * @param string $expected
+     * @dataProvider getTypeDataProvider
+     */
+    public function testGetType(
+        $attributeCode,
+        $serviceClass,
+        $attributeRepositoryResponse,
+        $serviceEntityTypeMapData,
+        $serviceBackendModelDataInterfaceMapData,
+        $expected
+    ) {
+        $this->attributeRepository
+            ->expects($this->any())
+            ->method('get')
+            ->willReturn($attributeRepositoryResponse);
+
+
+        $this->eavCustomAttributeTypeLocator = new EavCustomAttributeTypeLocator(
+            $this->attributeRepository,
+            $serviceEntityTypeMapData,
+            $serviceBackendModelDataInterfaceMapData
+        );
+
+        $type = $this->eavCustomAttributeTypeLocator->getType($attributeCode, $serviceClass);
+
+        $this->assertEquals($expected, $type, 'Expected: ' . $expected . 'but got: ' . $type);
+    }
+
+    public function getTypeDataProvider()
+    {
+        $serviceInterface = 'Magento\Catalog\Api\Data\ProductInterface';
+        $eavEntityType = 'catalog_product';
+        $mediaBackEndModelClass = 'Magento\Catalog\Model\Product\Attribute\Backend\Media';
+        $mediaAttributeDataInterface = '\Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface';
+        $serviceBackendModelDataInterfaceMapData = [
+            $serviceInterface => [$mediaBackEndModelClass => $mediaAttributeDataInterface]
+        ];
+
+        $attribute = $this->getMock(
+            'Magento\Catalog\Model\Resource\Eav\Attribute',
+            ['getBackendModel'],
+            [],
+            '',
+            false
+        );
+
+        $attribute->expects($this->any())
+            ->method('getBackendModel')
+            ->willReturn($mediaBackEndModelClass);
+
+        $attributeNoBackendModel = $this->getMock(
+            'Magento\Catalog\Model\Resource\Eav\Attribute',
+            ['getBackendModel'],
+            [],
+            '',
+            false
+        );
+
+        $attributeNoBackendModel->expects($this->any())
+            ->method('getBackendModel')
+            ->willReturn(null);
+
+        return [
+            [
+                'attributeCode' => 'media_galley',
+                'serviceClass' => $serviceInterface,
+                'attributeRepositoryResponse' => $attribute,
+                'serviceEntityTypeMapData' => [$serviceInterface => $eavEntityType],
+                'serviceBackendModelDataInterfaceMapData' => $serviceBackendModelDataInterfaceMapData,
+                'expected' => $mediaAttributeDataInterface
+            ],
+            [
+                'attributeCode' => null,
+                'serviceClass' => $serviceInterface,
+                'attributeRepositoryResponse' => $attribute,
+                'serviceEntityTypeMapData' => [$serviceInterface => $eavEntityType],
+                'serviceBackendModelDataInterfaceMapData' => $serviceBackendModelDataInterfaceMapData,
+                'expected' => null
+            ],
+            [
+                'attributeCode' => 'media_galley',
+                'serviceClass' => null,
+                'attributeRepositoryResponse' => $attribute,
+                'serviceEntityTypeMapData' => [$serviceInterface => $eavEntityType],
+                'serviceBackendModelDataInterfaceMapData' => $serviceBackendModelDataInterfaceMapData,
+                'expected' => null
+            ],
+            [
+                'attributeCode' => 'media_galley',
+                'serviceClass' => $serviceInterface,
+                'attributeRepositoryResponse' => $attributeNoBackendModel,
+                'serviceEntityTypeMapData' => [],
+                'serviceBackendModelDataInterfaceMapData' => [],
+                'expected' => null
+            ],
+            [
+                'attributeCode' => 'media_galley',
+                'serviceClass' => 'Magento\Catalog\Api\Data\ProductInterface',
+                'attributeRepositoryResponse' => $attribute,
+                'serviceEntityTypeMapData' => [$serviceInterface => $eavEntityType],
+                'serviceBackendModelDataInterfaceMapData' => [],
+                'expected' => null
+            ]
+        ];
+    }
+}
diff --git a/app/code/Magento/Eav/etc/config.xml b/app/code/Magento/Eav/etc/config.xml
index f5d8d72d90d6b0706f3a102fcf33b1b263342e81..d6b5873aaf92e121cf985d6d1ad03f42c16e55ff 100644
--- a/app/code/Magento/Eav/etc/config.xml
+++ b/app/code/Magento/Eav/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <general>
             <validator_data>
diff --git a/app/code/Magento/Eav/etc/di.xml b/app/code/Magento/Eav/etc/di.xml
index 42c3fc13ef7d9524b43f34797a689b27d9f227ce..3dfebf456c7ff4ae26f6f8a118431872c7c2f67e 100644
--- a/app/code/Magento/Eav/etc/di.xml
+++ b/app/code/Magento/Eav/etc/di.xml
@@ -23,6 +23,8 @@
     <preference for="Magento\Eav\Api\Data\AttributeSearchResultsInterface" type="Magento\Framework\Api\SearchResults" />
     <preference for="Magento\Eav\Api\Data\AttributeSetSearchResultsInterface" type="Magento\Framework\Api\SearchResults" />
     <preference for="Magento\Eav\Api\Data\AttributeGroupSearchResultsInterface" type="Magento\Framework\Api\SearchResults" />
+    <preference for="Magento\Framework\Webapi\CustomAttributeTypeLocatorInterface" type="Magento\Eav\Model\EavCustomAttributeTypeLocator" />
+
     <type name="Magento\Eav\Model\Entity\Attribute\Config">
         <arguments>
             <argument name="reader" xsi:type="object">Magento\Eav\Model\Entity\Attribute\Config\Reader\Proxy</argument>
@@ -43,4 +45,16 @@
     <type name="Magento\Eav\Model\Resource\Entity\Attribute">
         <plugin name="storeLabelCaching" type="Magento\Eav\Plugin\Model\Resource\Entity\Attribute" />
     </type>
+    <type name="Magento\Eav\Model\EavCustomAttributeTypeLocator">
+        <arguments>
+            <argument name="serviceEntityTypeMap" xsi:type="array">
+                <item name="Magento\Catalog\Api\Data\ProductInterface" xsi:type="const">Magento\Catalog\Api\Data\ProductAttributeInterface::ENTITY_TYPE_CODE</item>
+            </argument>
+            <argument name="serviceBackendModelDataInterfaceMap" xsi:type="array">
+                <item name="Magento\Catalog\Api\Data\ProductInterface" xsi:type="array">
+                    <item name="Magento\Catalog\Model\Product\Attribute\Backend\Media" xsi:type="string">Magento\Catalog\Api\Data\ProductAttributeMediaGalleryEntryInterface</item>
+                </item>
+            </argument>
+        </arguments>
+    </type>
 </config>
diff --git a/app/code/Magento/Eav/etc/module.xml b/app/code/Magento/Eav/etc/module.xml
index 156e78c1bdd64de754d9f2ee5274ef9dc65788d7..c4b4e458bd89df75bbe667371a54c90867752df2 100644
--- a/app/code/Magento/Eav/etc/module.xml
+++ b/app/code/Magento/Eav/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Eav" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
         </sequence>
     </module>
diff --git a/app/code/Magento/Eav/etc/webapi.xml b/app/code/Magento/Eav/etc/webapi.xml
index ca246c7cf3a97038d6b11bac5e949149bdfdcdc7..bb5bd767dc8fad16cc1ec95fc814174777cdae55 100644
--- a/app/code/Magento/Eav/etc/webapi.xml
+++ b/app/code/Magento/Eav/etc/webapi.xml
@@ -31,7 +31,7 @@
             <resource ref="Magento_Catalog::sets"/>
         </resources>
     </route>
-    <route url="/V1/eav/attribute-sets" method="PUT">
+    <route url="/V1/eav/attribute-sets/:attributeSetId" method="PUT">
         <service class="Magento\Eav\Api\AttributeSetRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Catalog::sets"/>
diff --git a/app/code/Magento/Email/Test/Unit/Model/AbstractTemplateTest.php b/app/code/Magento/Email/Test/Unit/Model/AbstractTemplateTest.php
index e9ea334e776dab2079d0167ca86a9e67c5380ebf..bfdd32f7e55421599563f7da80f170a757111b31 100644
--- a/app/code/Magento/Email/Test/Unit/Model/AbstractTemplateTest.php
+++ b/app/code/Magento/Email/Test/Unit/Model/AbstractTemplateTest.php
@@ -4,6 +4,8 @@
  * See COPYING.txt for license details.
  */
 
+// @codingStandardsIgnoreFile
+
 /**
  * Test class for \Magento\Email\Model\AbstractTemplate.
  */
@@ -56,4 +58,46 @@ class AbstractTemplateTest extends \PHPUnit_Framework_TestCase
     {
         return [[[]], [['area' => 'some_area']], [['store' => 'any_store']]];
     }
+
+    public function testEmulateDesignAndRevertDesign()
+    {
+        $originalConfig = ['area' => 'some_area', 'store' => 1];
+        $expectedConfig = ['area' => 'frontend', 'store' => 2];
+        $this->_model->setDesignConfig($originalConfig);
+
+        $this->_model->emulateDesign(2);
+        // assert config data has been emulated
+        $this->assertEquals($expectedConfig, $this->_model->getDesignConfig()->getData());
+
+        $this->_model->revertDesign();
+        // assert config data has been reverted to the original state
+        $this->assertEquals($originalConfig, $this->_model->getDesignConfig()->getData());
+    }
+
+    public function testGetDesignConfig()
+    {
+        $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+
+        $designMock = $this->getMock('Magento\Framework\View\DesignInterface');
+        $designMock->expects($this->any())->method('getArea')->willReturn('test_area');
+
+        $storeMock = $this->getMock('Magento\Store\Model\Store', [], [], '', false);
+        $storeMock->expects($this->any())->method('getId')->willReturn(2);
+        $storeManagerMock = $this->getMock('Magento\Store\Model\StoreManagerInterface');
+        $storeManagerMock->expects($this->any())->method('getStore')->willReturn($storeMock);
+
+        $model = $this->getMockForAbstractClass(
+            'Magento\Email\Model\AbstractTemplate',
+            $helper->getConstructArguments(
+                'Magento\Email\Model\AbstractTemplate',
+                [
+                    'design' => $designMock,
+                    'storeManager' => $storeManagerMock
+                ]
+            )
+        );
+
+        $expectedConfig = ['area' => 'test_area', 'store' => 2];
+        $this->assertEquals($expectedConfig, $model->getDesignConfig()->getData());
+    }
 }
diff --git a/app/code/Magento/Email/Test/Unit/Model/BackendTemplateTest.php b/app/code/Magento/Email/Test/Unit/Model/BackendTemplateTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..6a51e983e3b53191e4265d5f9f7d857825c86d1f
--- /dev/null
+++ b/app/code/Magento/Email/Test/Unit/Model/BackendTemplateTest.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+// @codingStandardsIgnoreFile
+
+/**
+ * Test class for Magento\Email\Model\BackendTemplate.
+ */
+namespace Magento\Email\Test\Unit\Model;
+
+use Magento\Email\Model\BackendTemplate;
+
+class BackendTemplateTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * Backend template mock
+     *
+     * @var BackendTemplate
+     */
+    protected $model;
+
+    /**
+     * @var \Magento\Framework\App\Config\ScopeConfigInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $scopeConfigMock;
+
+    /**
+     * @var \Magento\Config\Model\Config\Structure|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $structureMock;
+
+    /**
+     * @var \Magento\Email\Model\Resource\Template|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resourceModelMock;
+
+    protected function setUp()
+    {
+        $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+
+        $this->scopeConfigMock = $this->getMock('Magento\Framework\App\Config\ScopeConfigInterface');
+        $this->scopeConfigMock->expects($this->any())->method('getValue')->willReturn(['test' => 1]);
+
+        $this->structureMock = $this->getMock('Magento\Config\Model\Config\Structure', [], [], '', false);
+        $this->structureMock->expects($this->any())->method('getFieldPathsByAttribute')->willReturn(['path' => 'test']);
+
+        $this->resourceModelMock = $this->getMock('Magento\Email\Model\Resource\Template', [], [], '', false);
+        $this->resourceModelMock->expects($this->any())->method('getSystemConfigByPathsAndTemplateId')->willReturn(['test_config' => 2015]);
+        $objectManagerMock = $this->getMock('Magento\Framework\ObjectManagerInterface');
+        $objectManagerMock->expects($this->any())
+            ->method('get')
+            ->with('Magento\Email\Model\Resource\Template')
+            ->will($this->returnValue($this->resourceModelMock));
+        \Magento\Framework\App\ObjectManager::setInstance($objectManagerMock);
+
+        $this->model = $helper->getObject(
+            'Magento\Email\Model\BackendTemplate',
+            ['scopeConfig' => $this->scopeConfigMock, 'structure' => $this->structureMock]
+        );
+    }
+
+    public function testGetSystemConfigPathsWhereUsedAsDefaultNoTemplateCode()
+    {
+        $this->assertEquals([], $this->model->getSystemConfigPathsWhereUsedAsDefault());
+    }
+
+    public function testGetSystemConfigPathsWhereUsedAsDefaultValidTemplateCode()
+    {
+        $this->model->setData('orig_template_code', 1);
+        $this->assertEquals([['path' => 'test']], $this->model->getSystemConfigPathsWhereUsedAsDefault());
+    }
+
+    public function testGetSystemConfigPathsWhereUsedCurrentlyNoId()
+    {
+        $this->assertEquals([], $this->model->getSystemConfigPathsWhereUsedCurrently());
+    }
+
+    public function testGetSystemConfigPathsWhereUsedCurrentlyValidId()
+    {
+        $this->model->setId(1);
+        $this->assertEquals(['test_config' => 2015], $this->model->getSystemConfigPathsWhereUsedCurrently());
+    }
+}
diff --git a/app/code/Magento/Email/composer.json b/app/code/Magento/Email/composer.json
index 7eae5d149b013397761753c02789deb21b2abc46..cf75e8fdd529bb89688f2cc12bdd4d92efc527f0 100644
--- a/app/code/Magento/Email/composer.json
+++ b/app/code/Magento/Email/composer.json
@@ -3,7 +3,6 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-core": "0.42.0-beta11",
         "magento/module-config": "0.42.0-beta11",
         "magento/module-store": "0.42.0-beta11",
         "magento/module-cms": "0.42.0-beta11",
diff --git a/app/code/Magento/Email/etc/config.xml b/app/code/Magento/Email/etc/config.xml
index e966e4c1ed4c14dbcdfb5f0d4275f01a170d238a..700f625c9541c224cdbbf74dfdbcec7bf7390370 100644
--- a/app/code/Magento/Email/etc/config.xml
+++ b/app/code/Magento/Email/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <system>
             <media_storage_configuration>
diff --git a/app/code/Magento/Email/etc/module.xml b/app/code/Magento/Email/etc/module.xml
index 30252dd178b9eaefd8b68eca5814954dd5935310..3e5126d0e7e3a7c4997164f737f0fd6428bc9ead 100644
--- a/app/code/Magento/Email/etc/module.xml
+++ b/app/code/Magento/Email/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Email" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
             <module name="Magento_Cms"/>
         </sequence>
diff --git a/app/code/Magento/Fedex/composer.json b/app/code/Magento/Fedex/composer.json
index 9959c31c0264e069e40a70b15d0c145f6222819e..8997dc97ac88704304a484e44b7062d5a0399953 100644
--- a/app/code/Magento/Fedex/composer.json
+++ b/app/code/Magento/Fedex/composer.json
@@ -6,11 +6,11 @@
         "magento/module-store": "0.42.0-beta11",
         "magento/module-shipping": "0.42.0-beta11",
         "magento/module-directory": "0.42.0-beta11",
-        "magento/module-core": "0.42.0-beta11",
         "magento/module-catalog": "0.42.0-beta11",
         "magento/module-sales": "0.42.0-beta11",
         "magento/module-catalog-inventory": "0.42.0-beta11",
         "magento/module-quote": "0.42.0-beta11",
+        "magento/module-config": "0.42.0-beta11",
         "magento/framework": "0.42.0-beta11",
         "lib-libxml": "*",
         "magento/magento-composer-installer": "*"
diff --git a/app/code/Magento/Fedex/etc/config.xml b/app/code/Magento/Fedex/etc/config.xml
index d20fd9f2d1b1f66350a8bf1b1bb98cac7abc6c59..9d99b8997487bad3eae596d0b7b026be93f524d3 100644
--- a/app/code/Magento/Fedex/etc/config.xml
+++ b/app/code/Magento/Fedex/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <carriers>
             <fedex>
diff --git a/app/code/Magento/GiftMessage/composer.json b/app/code/Magento/GiftMessage/composer.json
index cdc15af4279b4934754adee08f63e97497cdec0e..575d83a28cc8e0fd75f7b8262697cfe213d19845 100644
--- a/app/code/Magento/GiftMessage/composer.json
+++ b/app/code/Magento/GiftMessage/composer.json
@@ -15,9 +15,6 @@
         "magento/framework": "0.42.0-beta11",
         "magento/magento-composer-installer": "*"
     },
-    "suggest": {
-        "magento/module-core": "0.42.0-beta11"
-    },
     "type": "magento2-module",
     "version": "0.42.0-beta11",
     "license": [
diff --git a/app/code/Magento/GiftMessage/etc/config.xml b/app/code/Magento/GiftMessage/etc/config.xml
index 2bebc1173ef729e22de095815520c3be2d900759..dc21f3cfecaf4055397c3ee28d0e225f3135eb2c 100644
--- a/app/code/Magento/GiftMessage/etc/config.xml
+++ b/app/code/Magento/GiftMessage/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <sales>
             <gift_messages>
diff --git a/app/code/Magento/GoogleAdwords/etc/config.xml b/app/code/Magento/GoogleAdwords/etc/config.xml
index 1fa6ffc95967943ca3106e10c4e21960e85ac912..71bd7813ad22278703215c1cb7c052cc72d16b5f 100644
--- a/app/code/Magento/GoogleAdwords/etc/config.xml
+++ b/app/code/Magento/GoogleAdwords/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <google>
             <adwords>
diff --git a/app/code/Magento/GoogleAnalytics/etc/module.xml b/app/code/Magento/GoogleAnalytics/etc/module.xml
index 0012f962d97a81dbd3ff8bbcc3f0f3db09443cd8..bcb1b0ed7573d5f672b2c5bf77f1869b1ff16c1a 100644
--- a/app/code/Magento/GoogleAnalytics/etc/module.xml
+++ b/app/code/Magento/GoogleAnalytics/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_GoogleAnalytics" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
         </sequence>
     </module>
diff --git a/app/code/Magento/GoogleOptimizer/etc/config.xml b/app/code/Magento/GoogleOptimizer/etc/config.xml
index 5c2c3fde8a40869d6fbb9a203289c06c3eefcb57..fa510197464776407fb36f4f791bc34f827669f1 100644
--- a/app/code/Magento/GoogleOptimizer/etc/config.xml
+++ b/app/code/Magento/GoogleOptimizer/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <google>
             <optimizer>
diff --git a/app/code/Magento/GoogleShopping/etc/config.xml b/app/code/Magento/GoogleShopping/etc/config.xml
index d5daf823e33eec7a1104abb4abfda0ec2a2a47fa..82d68fde8927948a6bbdd118a543e1628a100f25 100644
--- a/app/code/Magento/GoogleShopping/etc/config.xml
+++ b/app/code/Magento/GoogleShopping/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <google>
             <googleshopping>
diff --git a/app/code/Magento/GroupedProduct/etc/config.xml b/app/code/Magento/GroupedProduct/etc/config.xml
index 6dcf6efdac0dc24ff4f21b451e2982c991743713..676a5554de340408a34f6244f78d2a3571c138f7 100644
--- a/app/code/Magento/GroupedProduct/etc/config.xml
+++ b/app/code/Magento/GroupedProduct/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <checkout>
             <cart>
diff --git a/app/code/Magento/ImportExport/etc/config.xml b/app/code/Magento/ImportExport/etc/config.xml
index 84e0568291fb3e97e06338107c3e60bc03e455b5..b10fbc4e34c2cfe47314390998c47d13001f77a6 100644
--- a/app/code/Magento/ImportExport/etc/config.xml
+++ b/app/code/Magento/ImportExport/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <general>
             <file>
diff --git a/app/code/Magento/Indexer/etc/module.xml b/app/code/Magento/Indexer/etc/module.xml
index 4105ec2268543b68e0694380f2337541e7e3a8e7..f03aca19f0cc4ce32b6ce1b4b168d3d1ab391c37 100644
--- a/app/code/Magento/Indexer/etc/module.xml
+++ b/app/code/Magento/Indexer/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Indexer" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
         </sequence>
     </module>
diff --git a/app/code/Magento/Integration/Service/V1/AdminTokenService.php b/app/code/Magento/Integration/Service/V1/AdminTokenService.php
index 5393184ff9bceb5e8386194049b9b8ed1161b1bf..12beccdb3bb4e04ee3c1851a4909f5b5c5445d0b 100644
--- a/app/code/Magento/Integration/Service/V1/AdminTokenService.php
+++ b/app/code/Magento/Integration/Service/V1/AdminTokenService.php
@@ -22,7 +22,7 @@ class AdminTokenService implements AdminTokenServiceInterface
 {
     /**
      * Token Model
-     *
+     *a
      * @var TokenModelFactory
      */
     private $tokenModelFactory;
diff --git a/app/code/Magento/Integration/etc/config.xml b/app/code/Magento/Integration/etc/config.xml
index 8f525ccda1b7c6fa654df5a6b79fc1792df0f25c..6223b5bdc2d90b1dcd5c7facf13b46fa189589c8 100644
--- a/app/code/Magento/Integration/etc/config.xml
+++ b/app/code/Magento/Integration/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <oauth>
             <cleanup>
diff --git a/app/code/Magento/Integration/etc/module.xml b/app/code/Magento/Integration/etc/module.xml
index 7ae7bc0918f138db78083e39678ac75e08ee10a9..ca7838bfbb11cdfa6f9b6eeddf527786b87493f5 100644
--- a/app/code/Magento/Integration/etc/module.xml
+++ b/app/code/Magento/Integration/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Integration" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
             <module name="Magento_User"/>
         </sequence>
diff --git a/app/code/Magento/LayeredNavigation/etc/config.xml b/app/code/Magento/LayeredNavigation/etc/config.xml
index 21e2b707da9e34d6b927bfc2c9ff47b42af2d01d..d8cfd0f552c797148358e62578f119f794cf695a 100644
--- a/app/code/Magento/LayeredNavigation/etc/config.xml
+++ b/app/code/Magento/LayeredNavigation/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <catalog>
             <layered_navigation>
diff --git a/app/code/Magento/Log/etc/config.xml b/app/code/Magento/Log/etc/config.xml
index f77e48a2099d1be7ffdd14754097719b9f701434..0ca74bb05b554e466039793a3e89238a1ac18ebe 100644
--- a/app/code/Magento/Log/etc/config.xml
+++ b/app/code/Magento/Log/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <log>
             <visitor>
diff --git a/app/code/Magento/Core/LICENSE.txt b/app/code/Magento/MediaStorage/LICENSE.txt
similarity index 100%
rename from app/code/Magento/Core/LICENSE.txt
rename to app/code/Magento/MediaStorage/LICENSE.txt
diff --git a/app/code/Magento/Core/LICENSE_AFL.txt b/app/code/Magento/MediaStorage/LICENSE_AFL.txt
similarity index 100%
rename from app/code/Magento/Core/LICENSE_AFL.txt
rename to app/code/Magento/MediaStorage/LICENSE_AFL.txt
diff --git a/app/code/Magento/MediaStorage/Test/Unit/Model/File/Storage/_files/config.xml b/app/code/Magento/MediaStorage/Test/Unit/Model/File/Storage/_files/config.xml
index beb583cb58d9941ab51927d7f124495d0547f07c..4cffed1a1cc9e003d9a125797275c1787eca1afc 100644
--- a/app/code/Magento/MediaStorage/Test/Unit/Model/File/Storage/_files/config.xml
+++ b/app/code/Magento/MediaStorage/Test/Unit/Model/File/Storage/_files/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Store/etc/config.xsd">
     <default>
         <resources>
             <fixture_module_setup>
diff --git a/app/code/Magento/MediaStorage/composer.json b/app/code/Magento/MediaStorage/composer.json
index bfd1965a73ff2009fb06f04efa3d4d43a4620706..ccc5a944717a31326fcdcb7af0248c7781ab14ce 100644
--- a/app/code/Magento/MediaStorage/composer.json
+++ b/app/code/Magento/MediaStorage/composer.json
@@ -5,7 +5,6 @@
         "php": "~5.5.0|~5.6.0",
         "magento/module-store": "0.42.0-beta11",
         "magento/module-backend": "0.42.0-beta11",
-        "magento/module-core": "0.42.0-beta11",
         "magento/module-config": "0.42.0-beta11",
         "magento/framework": "0.42.0-beta11",
         "magento/magento-composer-installer": "*"
diff --git a/app/code/Magento/MediaStorage/i18n/de_DE.csv b/app/code/Magento/MediaStorage/i18n/de_DE.csv
new file mode 100644
index 0000000000000000000000000000000000000000..7cfc4ae6c12b63ecc839587142d3f9d8c6c9f8f6
--- /dev/null
+++ b/app/code/Magento/MediaStorage/i18n/de_DE.csv
@@ -0,0 +1,10 @@
+"Requested resource not found","Requested resource not found"
+"File %1 does not exist","File %1 does not exist"
+"File %1 is not readable","File %1 is not readable"
+"Parent directory does not exist: %1","Parent directory does not exist: %1"
+"File system",Dateisystem
+"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
+"Wrong file info format","Falsches Format Dateiinfo"
+"Please set available and/or protected paths list(s) before validation.","Bitte stellen Sie vor der Bestätigung die Liste(n) der verfügbaren und/oder geschützten Pfade ein."
+"Unable to create directory: %1","Unable to create directory: %1"
+"Unable to save file: %1","Unable to save file: %1"
diff --git a/app/code/Magento/MediaStorage/i18n/en_US.csv b/app/code/Magento/MediaStorage/i18n/en_US.csv
new file mode 100644
index 0000000000000000000000000000000000000000..b5cc34a4d49630ed633b764052b2d4e443bb615e
--- /dev/null
+++ b/app/code/Magento/MediaStorage/i18n/en_US.csv
@@ -0,0 +1,10 @@
+"Requested resource not found","Requested resource not found"
+"File %1 does not exist","File %1 does not exist"
+"File %1 is not readable","File %1 is not readable"
+"Parent directory does not exist: %1","Parent directory does not exist: %1"
+"File system","File system"
+"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
+"Wrong file info format","Wrong file info format"
+"Please set available and/or protected paths list(s) before validation.","Please set available and/or protected paths list(s) before validation."
+"Unable to create directory: %1","Unable to create directory: %1"
+"Unable to save file: %1","Unable to save file: %1"
diff --git a/app/code/Magento/MediaStorage/i18n/es_ES.csv b/app/code/Magento/MediaStorage/i18n/es_ES.csv
new file mode 100644
index 0000000000000000000000000000000000000000..0ad1da242f2a656889e6444a114fb019844bd88f
--- /dev/null
+++ b/app/code/Magento/MediaStorage/i18n/es_ES.csv
@@ -0,0 +1,10 @@
+"Requested resource not found","Requested resource not found"
+"File %1 does not exist","File %1 does not exist"
+"File %1 is not readable","File %1 is not readable"
+"Parent directory does not exist: %1","Parent directory does not exist: %1"
+"File system","Sistema de archivos"
+"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
+"Wrong file info format","Formato de información del archivo incorrecto"
+"Please set available and/or protected paths list(s) before validation.","Por favor, indique la(s) lista(s) de rutas disponibles y/o protegidas antes de la validación."
+"Unable to create directory: %1","Unable to create directory: %1"
+"Unable to save file: %1","Unable to save file: %1"
diff --git a/app/code/Magento/MediaStorage/i18n/fr_FR.csv b/app/code/Magento/MediaStorage/i18n/fr_FR.csv
new file mode 100644
index 0000000000000000000000000000000000000000..0d2d7dab58b82227c16c77ffbf4bee0805edb2e9
--- /dev/null
+++ b/app/code/Magento/MediaStorage/i18n/fr_FR.csv
@@ -0,0 +1,10 @@
+"Requested resource not found","Requested resource not found"
+"File %1 does not exist","File %1 does not exist"
+"File %1 is not readable","File %1 is not readable"
+"Parent directory does not exist: %1","Parent directory does not exist: %1"
+"File system","Système de fichiers"
+"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
+"Wrong file info format","Informations du format de fichiers incorrectes"
+"Please set available and/or protected paths list(s) before validation.","Veuillez définir la/les liste(s) de chemins disponibles et/ou protégés avant la validation."
+"Unable to create directory: %1","Unable to create directory: %1"
+"Unable to save file: %1","Unable to save file: %1"
diff --git a/app/code/Magento/MediaStorage/i18n/nl_NL.csv b/app/code/Magento/MediaStorage/i18n/nl_NL.csv
new file mode 100644
index 0000000000000000000000000000000000000000..abedda328cd459219fe19ec933cbaebc8d7115bd
--- /dev/null
+++ b/app/code/Magento/MediaStorage/i18n/nl_NL.csv
@@ -0,0 +1,10 @@
+"Requested resource not found","Requested resource not found"
+"File %1 does not exist","File %1 does not exist"
+"File %1 is not readable","File %1 is not readable"
+"Parent directory does not exist: %1","Parent directory does not exist: %1"
+"File system",Bestandssysteem
+"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
+"Wrong file info format","Verkeerde bestandsinformatiebestand"
+"Please set available and/or protected paths list(s) before validation.","Stel beschikbare en/of beschermde pad lijst(en) in voor validatie."
+"Unable to create directory: %1","Unable to create directory: %1"
+"Unable to save file: %1","Unable to save file: %1"
diff --git a/app/code/Magento/MediaStorage/i18n/pt_BR.csv b/app/code/Magento/MediaStorage/i18n/pt_BR.csv
new file mode 100644
index 0000000000000000000000000000000000000000..d9022058d08f66c809ffd2c697aff9cea6bf7e56
--- /dev/null
+++ b/app/code/Magento/MediaStorage/i18n/pt_BR.csv
@@ -0,0 +1,10 @@
+"Requested resource not found","Requested resource not found"
+"File %1 does not exist","File %1 does not exist"
+"File %1 is not readable","File %1 is not readable"
+"Parent directory does not exist: %1","Parent directory does not exist: %1"
+"File system","Sistema de arquivo"
+"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
+"Wrong file info format","Formato de arquivo de informação errado"
+"Please set available and/or protected paths list(s) before validation.","Por favor defina lista(s) de caminhos disponíveis e/ou protegidos antes da validação."
+"Unable to create directory: %1","Unable to create directory: %1"
+"Unable to save file: %1","Unable to save file: %1"
diff --git a/app/code/Magento/MediaStorage/i18n/zh_CN.csv b/app/code/Magento/MediaStorage/i18n/zh_CN.csv
new file mode 100644
index 0000000000000000000000000000000000000000..c0847a9f4600e53e9662f2b682a52efa1b48d1f1
--- /dev/null
+++ b/app/code/Magento/MediaStorage/i18n/zh_CN.csv
@@ -0,0 +1,10 @@
+"Requested resource not found","Requested resource not found"
+"File %1 does not exist","File %1 does not exist"
+"File %1 is not readable","File %1 is not readable"
+"Parent directory does not exist: %1","Parent directory does not exist: %1"
+"File system",文件系统
+"Unable to save file ""%1"" at ""%2""","Unable to save file ""%1"" at ""%2"""
+"Wrong file info format",错误的文件信息格式
+"Please set available and/or protected paths list(s) before validation.",请设置有效并/或受保护的路径列表,随后再验证。
+"Unable to create directory: %1","Unable to create directory: %1"
+"Unable to save file: %1","Unable to save file: %1"
diff --git a/app/code/Magento/Msrp/etc/config.xml b/app/code/Magento/Msrp/etc/config.xml
index e0a72f95dab6a9f8cf3dff985f3561407f87a41d..dd50e9de8178b9fb198156ab16074b9eede44a8f 100644
--- a/app/code/Magento/Msrp/etc/config.xml
+++ b/app/code/Magento/Msrp/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <sales>
             <msrp>
diff --git a/app/code/Magento/Multishipping/etc/config.xml b/app/code/Magento/Multishipping/etc/config.xml
index 76621b4a03bff0de66ee39c828fbb18e6feabce5..c08c0590401b67429190c650e3ae3f80a9d728f7 100644
--- a/app/code/Magento/Multishipping/etc/config.xml
+++ b/app/code/Magento/Multishipping/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <multishipping>
             <options>
diff --git a/app/code/Magento/Multishipping/etc/frontend/page_types.xml b/app/code/Magento/Multishipping/etc/frontend/page_types.xml
index 11be8441bb63b38b3ba5fc75319e8b988f241ab3..f58e8c5bb6a69f2c9d05fb543fd08eec5f1fd284 100644
--- a/app/code/Magento/Multishipping/etc/frontend/page_types.xml
+++ b/app/code/Magento/Multishipping/etc/frontend/page_types.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="checkout_cart_multishipping" label="Catalog Quick Search Form Suggestions"/>
     <type id="checkout_cart_multishipping_address_editaddress" label="Multishipping Checkout One Address Edit Form"/>
     <type id="checkout_cart_multishipping_address_editbilling" label="Multishipping Checkout Billing Address Edit Form"/>
diff --git a/app/code/Magento/Multishipping/etc/module.xml b/app/code/Magento/Multishipping/etc/module.xml
index 3ea0ac29db5ebb261f3a9dd4a7d17704bac1acfc..b6ea0b6ce80cad9020365e8fc77bfe09629ddbb9 100644
--- a/app/code/Magento/Multishipping/etc/module.xml
+++ b/app/code/Magento/Multishipping/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Multishipping" setup_version="2.0.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
             <module name="Magento_Catalog"/>
         </sequence>
diff --git a/app/code/Magento/Newsletter/etc/config.xml b/app/code/Magento/Newsletter/etc/config.xml
index 1ee0d4f45b4dbc1eb4560a5d34128003dd4b30ec..92b70813d46942884b7a4a55c7c69627612fef32 100644
--- a/app/code/Magento/Newsletter/etc/config.xml
+++ b/app/code/Magento/Newsletter/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <newsletter>
             <subscription>
diff --git a/app/code/Magento/Newsletter/etc/frontend/page_types.xml b/app/code/Magento/Newsletter/etc/frontend/page_types.xml
index 39889513a5efc5bd26ece50a48f04713cd008cfc..f6976324e9a862bec0d095ce8ada89ced4ee086f 100644
--- a/app/code/Magento/Newsletter/etc/frontend/page_types.xml
+++ b/app/code/Magento/Newsletter/etc/frontend/page_types.xml
@@ -5,6 +5,6 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="newsletter_manage_index" label="Customer My Account Newsletter Subscriptions"/>
 </page_types>
diff --git a/app/code/Magento/Newsletter/etc/module.xml b/app/code/Magento/Newsletter/etc/module.xml
index 13a4697cc7900c7ff670756ad6768ca439988b36..7d5356b547755df7fd21858f504d8208d1339fd8 100644
--- a/app/code/Magento/Newsletter/etc/module.xml
+++ b/app/code/Magento/Newsletter/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Newsletter" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
             <module name="Magento_Customer"/>
             <module name="Magento_Eav"/>
diff --git a/app/code/Magento/OfflinePayments/etc/config.xml b/app/code/Magento/OfflinePayments/etc/config.xml
index 3aac1bcdd6ca892ca4fa3c7a4f766f22963f84e6..67b15cb57e22d428d611630b43dd3fbf39af3c83 100644
--- a/app/code/Magento/OfflinePayments/etc/config.xml
+++ b/app/code/Magento/OfflinePayments/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <payment>
             <checkmo>
diff --git a/app/code/Magento/OfflinePayments/etc/module.xml b/app/code/Magento/OfflinePayments/etc/module.xml
index e458b0120953520956ab910a5e7a0ad7f49b54b6..c6cc2bf889da1d50dd65d60f2205c291d3f94b8d 100644
--- a/app/code/Magento/OfflinePayments/etc/module.xml
+++ b/app/code/Magento/OfflinePayments/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_OfflinePayments" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
             <module name="Magento_Catalog"/>
         </sequence>
diff --git a/app/code/Magento/OfflineShipping/etc/config.xml b/app/code/Magento/OfflineShipping/etc/config.xml
index e10269983be960658e0244257c2e3a513dfe1434..09dd89a88e3aa8da935ca5297094b58f1b67ee05 100644
--- a/app/code/Magento/OfflineShipping/etc/config.xml
+++ b/app/code/Magento/OfflineShipping/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <carriers>
             <flatrate>
diff --git a/app/code/Magento/PageCache/etc/config.xml b/app/code/Magento/PageCache/etc/config.xml
index 8bb6fd48f64a1ef1e00e1400ac914a63cb11d3c2..a1530794673bb554448856fb64d4346d5a44c40b 100644
--- a/app/code/Magento/PageCache/etc/config.xml
+++ b/app/code/Magento/PageCache/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <system>
             <full_page_cache>
diff --git a/app/code/Magento/PageCache/etc/module.xml b/app/code/Magento/PageCache/etc/module.xml
index 27fb178b409af4f29751c943930b30bd3edaac66..bd152d0a9e584b886647f50874c10a515eccd8d6 100644
--- a/app/code/Magento/PageCache/etc/module.xml
+++ b/app/code/Magento/PageCache/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_PageCache" setup_version="1.6.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
         </sequence>
     </module>
diff --git a/app/code/Magento/Payment/etc/config.xml b/app/code/Magento/Payment/etc/config.xml
index 79f703ef82aa1d1b1d7654b66f348ceac4c51a99..3fc78a9194a2cb6e78fc764c2734fa904cb8664d 100644
--- a/app/code/Magento/Payment/etc/config.xml
+++ b/app/code/Magento/Payment/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <payment>
             <free>
diff --git a/app/code/Magento/Persistent/etc/config.xml b/app/code/Magento/Persistent/etc/config.xml
index 0dd16042c81fe4e9c0cac6dd176c65a1faedc591..c34916a7735a29fff1ff7e2c9c6dbc90face6310 100644
--- a/app/code/Magento/Persistent/etc/config.xml
+++ b/app/code/Magento/Persistent/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <persistent>
             <options>
diff --git a/app/code/Magento/ProductAlert/etc/config.xml b/app/code/Magento/ProductAlert/etc/config.xml
index 23edc92c8f01e34aa136710ef54008f2382c9ea2..aae9903bfd345db05443b7180a285e3026c85aa5 100644
--- a/app/code/Magento/ProductAlert/etc/config.xml
+++ b/app/code/Magento/ProductAlert/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <catalog>
             <productalert>
diff --git a/app/code/Magento/Quote/etc/webapi.xml b/app/code/Magento/Quote/etc/webapi.xml
index e1502c718e95058cd007262ba45d5339598673a4..412dab6361b1f7ef5e24168ebcb9b1b980a32c48 100644
--- a/app/code/Magento/Quote/etc/webapi.xml
+++ b/app/code/Magento/Quote/etc/webapi.xml
@@ -13,7 +13,7 @@
             <resource ref="anonymous" />
         </resources>
     </route>
-    <route url="/V1/carts" method="PUT">
+    <route url="/V1/carts" method="GET">
         <service class="Magento\Quote\Api\CartRepositoryInterface" method="getList"/>
         <resources>
             <resource ref="anonymous" />
diff --git a/app/code/Magento/Reports/etc/config.xml b/app/code/Magento/Reports/etc/config.xml
index c9147001358680ef25a77c435a07519271a7cf79..d17146e739d84bf0c22e62bfc25178beec63eac4 100644
--- a/app/code/Magento/Reports/etc/config.xml
+++ b/app/code/Magento/Reports/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <catalog>
             <recently_products>
diff --git a/app/code/Magento/Review/composer.json b/app/code/Magento/Review/composer.json
index 8f961213f7b34a0da431534a402c1b818d09a957..3ac2d8c5deab3948d3df18d6cea4946bdac565c4 100644
--- a/app/code/Magento/Review/composer.json
+++ b/app/code/Magento/Review/composer.json
@@ -15,8 +15,7 @@
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-        "magento/module-cookie": "0.42.0-beta11",
-        "magento/module-core": "0.42.0-beta11"
+        "magento/module-cookie": "0.42.0-beta11"
     },
     "type": "magento2-module",
     "version": "0.42.0-beta11",
diff --git a/app/code/Magento/Review/etc/config.xml b/app/code/Magento/Review/etc/config.xml
index 0dc643e9ea43169759e13fcc12adee5f6da4de9a..1e46875b6f3d5b5d7039771ee813f121bacbc029 100644
--- a/app/code/Magento/Review/etc/config.xml
+++ b/app/code/Magento/Review/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <catalog>
             <review>
diff --git a/app/code/Magento/Review/etc/frontend/page_types.xml b/app/code/Magento/Review/etc/frontend/page_types.xml
index 113b431de418f9aeb97c2b31649fcd7b14b376b1..63fc47b5e2400951e22f07e860cd19cabb7dc541 100644
--- a/app/code/Magento/Review/etc/frontend/page_types.xml
+++ b/app/code/Magento/Review/etc/frontend/page_types.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="review_customer_index" label="Customer My Account Product Reviews"/>
     <type id="review_customer_view" label="Customer My Account Review Details"/>
     <type id="review_product_list" label="Catalog Product Reviews List"/>
diff --git a/app/code/Magento/Review/etc/module.xml b/app/code/Magento/Review/etc/module.xml
index ee43b6223153ea479b1e96ffd2b62e218223779c..226eb11213df86f11563660935e6075c5767608c 100644
--- a/app/code/Magento/Review/etc/module.xml
+++ b/app/code/Magento/Review/etc/module.xml
@@ -9,7 +9,6 @@
     <module name="Magento_Review" setup_version="2.0.0">
         <sequence>
             <module name="Magento_Catalog"/>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
         </sequence>
     </module>
diff --git a/app/code/Magento/Rss/etc/frontend/page_types.xml b/app/code/Magento/Rss/etc/frontend/page_types.xml
index b252b8816bb399134cb281360e6e1927cfc09cb2..f834bd2faf9f9ccd1fa13abd01929bccde29db45 100644
--- a/app/code/Magento/Rss/etc/frontend/page_types.xml
+++ b/app/code/Magento/Rss/etc/frontend/page_types.xml
@@ -5,6 +5,6 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="rss_index_index" label="RSS Feeds List"/>
 </page_types>
diff --git a/app/code/Magento/Rule/etc/module.xml b/app/code/Magento/Rule/etc/module.xml
index b1ee185e3ec299014f691f1cb80ea6f8220fc61f..3a3987c2fb25336a2a7d1e174c36bfd051e7f9ce 100644
--- a/app/code/Magento/Rule/etc/module.xml
+++ b/app/code/Magento/Rule/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Rule" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
         </sequence>
     </module>
diff --git a/app/code/Magento/Sales/Model/Order/Payment/Transaction.php b/app/code/Magento/Sales/Model/Order/Payment/Transaction.php
index fde468255771fee880d6a931e79696c8a6da925e..9b4d6f39fdcaac1fbc20177cab1c7e19fb0019ba 100644
--- a/app/code/Magento/Sales/Model/Order/Payment/Transaction.php
+++ b/app/code/Magento/Sales/Model/Order/Payment/Transaction.php
@@ -111,7 +111,7 @@ class Transaction extends AbstractExtensibleModel implements TransactionInterfac
      * Event object prefix
      *
      * @var string
-     * @see \Magento\Core\Model\Absctract::$_eventPrefix
+     * @see \Magento\Framework\Model\AbstractModel::$_eventPrefix
      */
     protected $_eventPrefix = 'sales_order_payment_transaction';
 
@@ -119,7 +119,7 @@ class Transaction extends AbstractExtensibleModel implements TransactionInterfac
      * Event object prefix
      *
      * @var string
-     * @see \Magento\Core\Model\Absctract::$_eventObject
+     * @see \Magento\Framework\Model\AbstractModel::$_eventObject
      */
     protected $_eventObject = 'order_payment_transaction';
 
diff --git a/app/code/Magento/Sales/etc/config.xml b/app/code/Magento/Sales/etc/config.xml
index db812559be52ef52b237a231aa37fc1c4ceea0e1..2d42f963e6965decc5159ed82becc3fec22d25d2 100644
--- a/app/code/Magento/Sales/etc/config.xml
+++ b/app/code/Magento/Sales/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <sales>
             <totals_sort>
diff --git a/app/code/Magento/Sales/etc/frontend/page_types.xml b/app/code/Magento/Sales/etc/frontend/page_types.xml
index 693807b457a00edcd950c702fbdc506cf1f84623..701945902468273674ca3f9b0b4a271794232380 100644
--- a/app/code/Magento/Sales/etc/frontend/page_types.xml
+++ b/app/code/Magento/Sales/etc/frontend/page_types.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="sales_guest_creditmemo" label="Guest Order Creditmemo View"/>
     <type id="sales_guest_form" label="Returns"/>
     <type id="sales_guest_invoice" label="Guest Order Invoice View"/>
diff --git a/app/code/Magento/Sales/etc/webapi.xml b/app/code/Magento/Sales/etc/webapi.xml
index bfa2d724e25a4a2fb23670f4771372ede93364b0..3acea225b21ec3373d305834fc84f60332f8d39e 100644
--- a/app/code/Magento/Sales/etc/webapi.xml
+++ b/app/code/Magento/Sales/etc/webapi.xml
@@ -7,7 +7,7 @@
 -->
 <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
-    <route url="/V1/order/:id" method="GET">
+    <route url="/V1/orders/:id" method="GET">
         <service class="Magento\Sales\Api\OrderRepositoryInterface" method="get"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
@@ -19,61 +19,61 @@
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/order/:id/status" method="GET">
+    <route url="/V1/orders/:id/statuses" method="GET">
         <service class="Magento\Sales\Api\OrderManagementInterface" method="getStatus"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/order/:id/cancel" method="POST">
+    <route url="/V1/orders/:id/cancel" method="POST">
         <service class="Magento\Sales\Api\OrderManagementInterface" method="cancel"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/order/:id/email" method="POST">
+    <route url="/V1/orders/:id/emails" method="POST">
         <service class="Magento\Sales\Api\OrderManagementInterface" method="notify"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/order/:id/hold" method="POST">
+    <route url="/V1/orders/:id/hold" method="POST">
         <service class="Magento\Sales\Api\OrderManagementInterface" method="hold"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/order/:id/unhold" method="POST">
+    <route url="/V1/orders/:id/unhold" method="POST">
         <service class="Magento\Sales\Api\OrderManagementInterface" method="unHold"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/order/:id/comment" method="POST">
+    <route url="/V1/orders/:id/comments" method="POST">
         <service class="Magento\Sales\Api\OrderManagementInterface" method="addComment"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/order/:id/comments" method="GET">
+    <route url="/V1/orders/:id/comments" method="GET">
         <service class="Magento\Sales\Api\OrderManagementInterface" method="getCommentsList"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/order/create" method="PUT">
+    <route url="/V1/orders/create" method="PUT">
         <service class="Magento\Sales\Api\OrderRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/order/:parent_id" method="PUT">
+    <route url="/V1/orders/:parent_id" method="PUT">
         <service class="Magento\Sales\Api\OrderAddressRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/invoice/:id" method="GET">
+    <route url="/V1/invoices/:id" method="GET">
         <service class="Magento\Sales\Api\InvoiceRepositoryInterface" method="get"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
@@ -85,37 +85,37 @@
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/invoice/:id/comments" method="GET">
+    <route url="/V1/invoices/:id/comments" method="GET">
         <service class="Magento\Sales\Api\InvoiceManagementInterface" method="getCommentsList"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/invoice/:id/email" method="POST">
+    <route url="/V1/invoices/:id/emails" method="POST">
         <service class="Magento\Sales\Api\InvoiceManagementInterface" method="notify"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/invoice/:id/void" method="POST">
+    <route url="/V1/invoices/:id/void" method="POST">
         <service class="Magento\Sales\Api\InvoiceManagementInterface" method="setVoid"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/invoice/:id/capture" method="POST">
+    <route url="/V1/invoices/:id/capture" method="POST">
         <service class="Magento\Sales\Api\InvoiceManagementInterface" method="setCapture"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/invoice/comment" method="POST">
+    <route url="/V1/invoices/comments" method="POST">
         <service class="Magento\Sales\Api\InvoiceCommentRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/invoice/" method="POST">
+    <route url="/V1/invoices/" method="POST">
         <service class="Magento\Sales\Api\InvoiceRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
@@ -145,13 +145,13 @@
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/creditmemo/:id/email" method="POST">
+    <route url="/V1/creditmemo/:id/emails" method="POST">
         <service class="Magento\Sales\Api\CreditmemoManagementInterface" method="notify"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/creditmemo/comment" method="POST">
+    <route url="/V1/creditmemo/:id/comments" method="POST">
         <service class="Magento\Sales\Api\CreditmemoCommentRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
@@ -181,13 +181,13 @@
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/shipment/comment" method="POST">
+    <route url="/V1/shipment/:id/comments" method="POST">
         <service class="Magento\Sales\Api\ShipmentCommentRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/shipment/:id/email" method="POST">
+    <route url="/V1/shipment/:id/emails" method="POST">
         <service class="Magento\Sales\Api\ShipmentManagementInterface" method="notify"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
@@ -217,7 +217,7 @@
             <resource ref="Magento_Sales::sales" />
         </resources>
     </route>
-    <route url="/V1/order/" method="POST">
+    <route url="/V1/orders/" method="POST">
         <service class="Magento\Sales\Api\OrderRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Sales::sales" />
diff --git a/app/code/Magento/SalesRule/etc/config.xml b/app/code/Magento/SalesRule/etc/config.xml
index 7d3da07bc36457b55840e017735b28cdc6ce1308..486f8e4073ce85fef4a2b482b0a3e09e27a618c4 100644
--- a/app/code/Magento/SalesRule/etc/config.xml
+++ b/app/code/Magento/SalesRule/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <promo>
             <auto_generated_coupon_codes>
diff --git a/app/code/Magento/Search/etc/frontend/page_types.xml b/app/code/Magento/Search/etc/frontend/page_types.xml
index 0f5a1440de0ce62e107bf30c144a876c6187cb27..2c563ca5c0d1b97fcf9960c34a3656b70bbb13df 100644
--- a/app/code/Magento/Search/etc/frontend/page_types.xml
+++ b/app/code/Magento/Search/etc/frontend/page_types.xml
@@ -5,6 +5,6 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="search_term_popular" label="Popular Search Terms"/>
 </page_types>
diff --git a/app/code/Magento/Sendfriend/etc/config.xml b/app/code/Magento/Sendfriend/etc/config.xml
index 52d949a1036a31b5279e79a0400823a76a0356d7..6a63fb0eb3be102a68ca6cd2f40ef898c2db8f0e 100644
--- a/app/code/Magento/Sendfriend/etc/config.xml
+++ b/app/code/Magento/Sendfriend/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <sendfriend>
             <email>
diff --git a/app/code/Magento/Sendfriend/etc/frontend/page_types.xml b/app/code/Magento/Sendfriend/etc/frontend/page_types.xml
index cc46efb01ddc13708d15ee4c3eca5b9d0c9de633..c4396bfb90b7c9b1338f9a7ba38e9f2093afb414 100644
--- a/app/code/Magento/Sendfriend/etc/frontend/page_types.xml
+++ b/app/code/Magento/Sendfriend/etc/frontend/page_types.xml
@@ -5,6 +5,6 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="sendfriend_product_send" label="Catalog Product Email to a Friend"/>
 </page_types>
diff --git a/app/code/Magento/Shipping/etc/config.xml b/app/code/Magento/Shipping/etc/config.xml
index 6f66c2a3146755431b73eb5c20689165bb17726b..181805b665d283099c954844413036032d8e50fd 100644
--- a/app/code/Magento/Shipping/etc/config.xml
+++ b/app/code/Magento/Shipping/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <shipping>
             <origin>
diff --git a/app/code/Magento/Shipping/etc/frontend/page_types.xml b/app/code/Magento/Shipping/etc/frontend/page_types.xml
index 452cfdded68cf59f1f7a25813cf69a261c0f9f8b..2b2d3f2c617a3dd0b22785a5b57ac7128180e2f5 100644
--- a/app/code/Magento/Shipping/etc/frontend/page_types.xml
+++ b/app/code/Magento/Shipping/etc/frontend/page_types.xml
@@ -5,6 +5,6 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="shipping_tracking_popup" label="Shipment Tracking Popup"/>
 </page_types>
diff --git a/app/code/Magento/Shipping/etc/module.xml b/app/code/Magento/Shipping/etc/module.xml
index 999d4fa4882a9b50c971d0e22f4cca09075049c9..ff4283ad84048134a416309725404e203af77c33 100644
--- a/app/code/Magento/Shipping/etc/module.xml
+++ b/app/code/Magento/Shipping/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Shipping" setup_version="2.0.0">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
             <module name="Magento_Catalog"/>
         </sequence>
diff --git a/app/code/Magento/Sitemap/etc/config.xml b/app/code/Magento/Sitemap/etc/config.xml
index ff84e8eec23892526961e5ea3d0d1e11e2978af7..03e72e315546683a613d9212ecf1032f46d3c3a2 100644
--- a/app/code/Magento/Sitemap/etc/config.xml
+++ b/app/code/Magento/Sitemap/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <sitemap>
             <limit>
diff --git a/app/code/Magento/Store/composer.json b/app/code/Magento/Store/composer.json
index aa9c2858d0b9d68e6243ec931d9593187061dca7..c991778c00e9d67dbc1dd0ae36810f0a49009e7a 100644
--- a/app/code/Magento/Store/composer.json
+++ b/app/code/Magento/Store/composer.json
@@ -3,7 +3,6 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-core": "0.42.0-beta11",
         "magento/module-directory": "0.42.0-beta11",
         "magento/module-ui": "0.42.0-beta11",
         "magento/module-config": "0.42.0-beta11",
diff --git a/app/code/Magento/Core/etc/cache.xml b/app/code/Magento/Store/etc/cache.xml
similarity index 100%
rename from app/code/Magento/Core/etc/cache.xml
rename to app/code/Magento/Store/etc/cache.xml
diff --git a/app/code/Magento/Core/etc/config.xml b/app/code/Magento/Store/etc/config.xml
similarity index 98%
rename from app/code/Magento/Core/etc/config.xml
rename to app/code/Magento/Store/etc/config.xml
index ddfb237c0eeee1ad680280538feedeaf54542eca..0bf0f4cdb889d4590773e402854cdeb4c1ee015c 100644
--- a/app/code/Magento/Core/etc/config.xml
+++ b/app/code/Magento/Store/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="config.xsd">
     <default>
         <design>
             <pagination>
diff --git a/app/code/Magento/Core/etc/config.xsd b/app/code/Magento/Store/etc/config.xsd
similarity index 100%
rename from app/code/Magento/Core/etc/config.xsd
rename to app/code/Magento/Store/etc/config.xsd
diff --git a/app/code/Magento/Store/etc/di.xml b/app/code/Magento/Store/etc/di.xml
index fdbce3aa2a3ea1180edeaa749e39eb55bfc34b7a..ebbc61f6036c8723c1fe943e07795097b63f1f6d 100644
--- a/app/code/Magento/Store/etc/di.xml
+++ b/app/code/Magento/Store/etc/di.xml
@@ -219,6 +219,11 @@
             </argument>
         </arguments>
     </type>
+    <type name="Magento\Framework\Module\Setup\Migration">
+        <arguments>
+            <argument name="confPathToMapFile" xsi:type="string">app/etc/aliases_to_classes_map.json</argument>
+        </arguments>
+    </type>
     <type name="Magento\Framework\Module\Setup\MigrationData">
         <arguments>
             <argument name="data" xsi:type="array">
@@ -243,4 +248,52 @@
             <argument name="cache" xsi:type="object">Magento\Framework\App\Cache\Type\Config</argument>
         </arguments>
     </type>
+    <type name="Magento\Framework\App\Router\Base">
+        <arguments>
+            <argument name="routerId" xsi:type="string">standard</argument>
+        </arguments>
+    </type>
+    <type name="Magento\Framework\Stdlib\DateTime\Timezone">
+        <arguments>
+            <argument name="defaultTimezonePath" xsi:type="const">Magento\Directory\Helper\Data::XML_PATH_DEFAULT_TIMEZONE</argument>
+            <argument name="scopeType" xsi:type="const">Magento\Store\Model\ScopeInterface::SCOPE_STORE</argument>
+        </arguments>
+    </type>
+    <type name="Magento\Framework\Locale\Resolver">
+        <arguments>
+            <argument name="defaultLocalePath" xsi:type="const">Magento\Directory\Helper\Data::XML_PATH_DEFAULT_LOCALE</argument>
+            <argument name="scopeType" xsi:type="const">Magento\Store\Model\ScopeInterface::SCOPE_STORE</argument>
+        </arguments>
+    </type>
+    <type name="Magento\Framework\App\Config\Initial\SchemaLocator">
+        <arguments>
+            <argument name="moduleName" xsi:type="string">Magento_Store</argument>
+        </arguments>
+    </type>
+    <type name="Magento\Framework\DB\Helper">
+        <arguments>
+            <argument name="modulePrefix" xsi:type="string">store</argument>
+        </arguments>
+    </type>
+    <type name="Magento\Framework\View\Asset\PreProcessor\Pool">
+        <arguments>
+            <argument name="preProcessors" xsi:type="array">
+                <item name="less" xsi:type="array">
+                    <item name="css" xsi:type="array">
+                        <item name="less_css" xsi:type="string">Magento\Framework\Css\PreProcessor\Less</item>
+                        <item name="module_notation" xsi:type="string">Magento\Framework\View\Asset\PreProcessor\ModuleNotation</item>
+                    </item>
+                    <item name="less" xsi:type="array">
+                        <item name="magento_import" xsi:type="string">Magento\Framework\Less\PreProcessor\Instruction\MagentoImport</item>
+                        <item name="import" xsi:type="string">Magento\Framework\Less\PreProcessor\Instruction\Import</item>
+                    </item>
+                </item>
+                <item name="css" xsi:type="array">
+                    <item name="css" xsi:type="array">
+                        <item name="module_notation" xsi:type="string">Magento\Framework\View\Asset\PreProcessor\ModuleNotation</item>
+                    </item>
+                </item>
+            </argument>
+        </arguments>
+    </type>
 </config>
diff --git a/app/code/Magento/Store/etc/module.xml b/app/code/Magento/Store/etc/module.xml
index e01760c2873fb23499154afca8c78babafef2a70..b01976513381612bc4bafddd9463531ee54ea72e 100644
--- a/app/code/Magento/Store/etc/module.xml
+++ b/app/code/Magento/Store/etc/module.xml
@@ -7,8 +7,5 @@
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Store" setup_version="2.0.0">
-        <sequence>
-            <module name="Magento_Core"/>
-        </sequence>
     </module>
 </config>
diff --git a/app/code/Magento/Store/i18n/de_DE.csv b/app/code/Magento/Store/i18n/de_DE.csv
index 144b5864e3cd87176710da0bcddbc570eb9622d4..f376d05a2c634af120f2e31c26caa9af4e97949d 100644
--- a/app/code/Magento/Store/i18n/de_DE.csv
+++ b/app/code/Magento/Store/i18n/de_DE.csv
@@ -10,3 +10,16 @@ Admin,Admin
 "Your Language","Your Language"
 Language,Language
 "Select Store","Select Store"
+"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
+"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
+"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
+Layouts,Layouts
+"Layout building instructions.","Layout building instructions."
+"Blocks HTML output","Blocks HTML output"
+"Page blocks HTML.","Page blocks HTML."
+"View files fallback","View files fallback"
+"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
+"View files pre-processing","View files pre-processing"
+"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
+"Collections Data","Collections Data"
+"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Store/i18n/en_US.csv b/app/code/Magento/Store/i18n/en_US.csv
index 144b5864e3cd87176710da0bcddbc570eb9622d4..f376d05a2c634af120f2e31c26caa9af4e97949d 100644
--- a/app/code/Magento/Store/i18n/en_US.csv
+++ b/app/code/Magento/Store/i18n/en_US.csv
@@ -10,3 +10,16 @@ Admin,Admin
 "Your Language","Your Language"
 Language,Language
 "Select Store","Select Store"
+"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
+"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
+"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
+Layouts,Layouts
+"Layout building instructions.","Layout building instructions."
+"Blocks HTML output","Blocks HTML output"
+"Page blocks HTML.","Page blocks HTML."
+"View files fallback","View files fallback"
+"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
+"View files pre-processing","View files pre-processing"
+"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
+"Collections Data","Collections Data"
+"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Store/i18n/es_ES.csv b/app/code/Magento/Store/i18n/es_ES.csv
index 144b5864e3cd87176710da0bcddbc570eb9622d4..f376d05a2c634af120f2e31c26caa9af4e97949d 100644
--- a/app/code/Magento/Store/i18n/es_ES.csv
+++ b/app/code/Magento/Store/i18n/es_ES.csv
@@ -10,3 +10,16 @@ Admin,Admin
 "Your Language","Your Language"
 Language,Language
 "Select Store","Select Store"
+"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
+"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
+"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
+Layouts,Layouts
+"Layout building instructions.","Layout building instructions."
+"Blocks HTML output","Blocks HTML output"
+"Page blocks HTML.","Page blocks HTML."
+"View files fallback","View files fallback"
+"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
+"View files pre-processing","View files pre-processing"
+"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
+"Collections Data","Collections Data"
+"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Store/i18n/fr_FR.csv b/app/code/Magento/Store/i18n/fr_FR.csv
index 144b5864e3cd87176710da0bcddbc570eb9622d4..f376d05a2c634af120f2e31c26caa9af4e97949d 100644
--- a/app/code/Magento/Store/i18n/fr_FR.csv
+++ b/app/code/Magento/Store/i18n/fr_FR.csv
@@ -10,3 +10,16 @@ Admin,Admin
 "Your Language","Your Language"
 Language,Language
 "Select Store","Select Store"
+"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
+"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
+"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
+Layouts,Layouts
+"Layout building instructions.","Layout building instructions."
+"Blocks HTML output","Blocks HTML output"
+"Page blocks HTML.","Page blocks HTML."
+"View files fallback","View files fallback"
+"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
+"View files pre-processing","View files pre-processing"
+"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
+"Collections Data","Collections Data"
+"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Store/i18n/nl_NL.csv b/app/code/Magento/Store/i18n/nl_NL.csv
index 144b5864e3cd87176710da0bcddbc570eb9622d4..f376d05a2c634af120f2e31c26caa9af4e97949d 100644
--- a/app/code/Magento/Store/i18n/nl_NL.csv
+++ b/app/code/Magento/Store/i18n/nl_NL.csv
@@ -10,3 +10,16 @@ Admin,Admin
 "Your Language","Your Language"
 Language,Language
 "Select Store","Select Store"
+"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
+"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
+"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
+Layouts,Layouts
+"Layout building instructions.","Layout building instructions."
+"Blocks HTML output","Blocks HTML output"
+"Page blocks HTML.","Page blocks HTML."
+"View files fallback","View files fallback"
+"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
+"View files pre-processing","View files pre-processing"
+"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
+"Collections Data","Collections Data"
+"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Store/i18n/pt_BR.csv b/app/code/Magento/Store/i18n/pt_BR.csv
index 144b5864e3cd87176710da0bcddbc570eb9622d4..f376d05a2c634af120f2e31c26caa9af4e97949d 100644
--- a/app/code/Magento/Store/i18n/pt_BR.csv
+++ b/app/code/Magento/Store/i18n/pt_BR.csv
@@ -10,3 +10,16 @@ Admin,Admin
 "Your Language","Your Language"
 Language,Language
 "Select Store","Select Store"
+"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
+"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
+"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
+Layouts,Layouts
+"Layout building instructions.","Layout building instructions."
+"Blocks HTML output","Blocks HTML output"
+"Page blocks HTML.","Page blocks HTML."
+"View files fallback","View files fallback"
+"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
+"View files pre-processing","View files pre-processing"
+"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
+"Collections Data","Collections Data"
+"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Store/i18n/zh_CN.csv b/app/code/Magento/Store/i18n/zh_CN.csv
index 144b5864e3cd87176710da0bcddbc570eb9622d4..f376d05a2c634af120f2e31c26caa9af4e97949d 100644
--- a/app/code/Magento/Store/i18n/zh_CN.csv
+++ b/app/code/Magento/Store/i18n/zh_CN.csv
@@ -10,3 +10,16 @@ Admin,Admin
 "Your Language","Your Language"
 Language,Language
 "Select Store","Select Store"
+"Helper arguments should not be used in custom layout updates.","Helper arguments should not be used in custom layout updates."
+"Updater model should not be used in custom layout updates.","Updater model should not be used in custom layout updates."
+"Please correct the XML data and try again. %value%","Please correct the XML data and try again. %value%"
+Layouts,Layouts
+"Layout building instructions.","Layout building instructions."
+"Blocks HTML output","Blocks HTML output"
+"Page blocks HTML.","Page blocks HTML."
+"View files fallback","View files fallback"
+"Paths to view files (e.g., PHTML templates, images, CSS, JS files).","Paths to view files (e.g., PHTML templates, images, CSS, JS files)."
+"View files pre-processing","View files pre-processing"
+"Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files).","Paths to pre-processed view files (e.g, CSS files with fixed paths or generated from LESS files)."
+"Collections Data","Collections Data"
+"Collection data files.","Collection data files."
diff --git a/app/code/Magento/Tax/etc/config.xml b/app/code/Magento/Tax/etc/config.xml
index 6bd4ac34c517bc580a1c919950cb54a5b0c6e30f..7e44459eda420838364a8c5a5b263fb61c527f04 100644
--- a/app/code/Magento/Tax/etc/config.xml
+++ b/app/code/Magento/Tax/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <tax>
             <classes>
diff --git a/app/code/Magento/Tax/etc/webapi.xml b/app/code/Magento/Tax/etc/webapi.xml
index 554f6729785b7e75612a7ffdba1c5da36410555f..760734bc02b8245010faca0f050c1fb06d52deaf 100644
--- a/app/code/Magento/Tax/etc/webapi.xml
+++ b/app/code/Magento/Tax/etc/webapi.xml
@@ -7,31 +7,31 @@
 -->
 <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
-    <route url="/V1/taxRate" method="POST">
+    <route url="/V1/taxRates" method="POST">
         <service class="Magento\Tax\Api\TaxRateRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Tax::manage_tax"/>
         </resources>
     </route>
-    <route url="/V1/taxRate/:rateId" method="GET">
+    <route url="/V1/taxRates/:rateId" method="GET">
         <service class="Magento\Tax\Api\TaxRateRepositoryInterface" method="get"/>
         <resources>
             <resource ref="Magento_Tax::manage_tax"/>
         </resources>
     </route>
-    <route url="/V1/taxRate" method="PUT">
+    <route url="/V1/taxRates" method="PUT">
         <service class="Magento\Tax\Api\TaxRateRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Tax::manage_tax"/>
         </resources>
     </route>
-    <route url="/V1/taxRate/:rateId" method="DELETE">
+    <route url="/V1/taxRates/:rateId" method="DELETE">
         <service class="Magento\Tax\Api\TaxRateRepositoryInterface" method="deleteById"/>
         <resources>
             <resource ref="Magento_Tax::manage_tax"/>
         </resources>
     </route>
-    <route url="/V1/taxRate/search" method="GET">
+    <route url="/V1/taxRates/search" method="GET">
         <service class="Magento\Tax\Api\TaxRateRepositoryInterface" method="getList"/>
         <resources>
             <resource ref="Magento_Tax::manage_tax"/>
@@ -67,31 +67,31 @@
             <resource ref="Magento_Tax::manage_tax"/>
         </resources>
     </route>
-    <route url="/V1/taxClass" method="POST">
+    <route url="/V1/taxClasses" method="POST">
         <service class="Magento\Tax\Api\TaxClassRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Tax::manage_tax"/>
         </resources>
     </route>
-    <route url="/V1/taxClass/:taxClassId" method="GET">
+    <route url="/V1/taxClasses/:taxClassId" method="GET">
         <service class="Magento\Tax\Api\TaxClassRepositoryInterface" method="get"/>
         <resources>
             <resource ref="Magento_Tax::manage_tax"/>
         </resources>
     </route>
-    <route url="/V1/taxClass/:classId" method="PUT">
+    <route url="/V1/taxClasses/:classId" method="PUT">
         <service class="Magento\Tax\Api\TaxClassRepositoryInterface" method="save"/>
         <resources>
             <resource ref="Magento_Tax::manage_tax"/>
         </resources>
     </route>
-    <route url="/V1/taxClass/:taxClassId" method="DELETE">
+    <route url="/V1/taxClasses/:taxClassId" method="DELETE">
         <service class="Magento\Tax\Api\TaxClassRepositoryInterface" method="deleteById"/>
         <resources>
             <resource ref="Magento_Tax::manage_tax"/>
         </resources>
     </route>
-    <route url="/V1/taxClass/search" method="GET">
+    <route url="/V1/taxClasses/search" method="GET">
         <service class="Magento\Tax\Api\TaxClassRepositoryInterface" method="getList"/>
         <resources>
             <resource ref="Magento_Tax::manage_tax"/>
diff --git a/app/code/Magento/Theme/Setup/InstallSchema.php b/app/code/Magento/Theme/Setup/InstallSchema.php
index 30d5d299c21b929bafe0684d11a61cf903e558e5..f2135e0c1e4df8f03743be922c9e3aafe05026d5 100644
--- a/app/code/Magento/Theme/Setup/InstallSchema.php
+++ b/app/code/Magento/Theme/Setup/InstallSchema.php
@@ -157,6 +157,56 @@ class InstallSchema implements InstallSchemaInterface
         );
         $connection->createTable($table);
 
+        /**
+         * Create table 'design_change'
+         */
+        $table = $connection->newTable(
+            $installer->getTable('design_change')
+        )->addColumn(
+            'design_change_id',
+            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
+            null,
+            ['identity' => true, 'nullable' => false, 'primary' => true],
+            'Design Change Id'
+        )->addColumn(
+            'store_id',
+            \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
+            null,
+            ['unsigned' => true, 'nullable' => false, 'default' => '0'],
+            'Store Id'
+        )->addColumn(
+            'design',
+            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
+            255,
+            [],
+            'Design'
+        )->addColumn(
+            'date_from',
+            \Magento\Framework\DB\Ddl\Table::TYPE_DATE,
+            null,
+            [],
+            'First Date of Design Activity'
+        )->addColumn(
+            'date_to',
+            \Magento\Framework\DB\Ddl\Table::TYPE_DATE,
+            null,
+            [],
+            'Last Date of Design Activity'
+        )->addIndex(
+            $installer->getIdxName('design_change', ['store_id']),
+            ['store_id']
+        )->addForeignKey(
+            $installer->getFkName('design_change', 'store_id', 'store', 'store_id'),
+            'store_id',
+            $installer->getTable('store'),
+            'store_id',
+            \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE,
+            \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE
+        )->setComment(
+            'Design Changes'
+        );
+        $connection->createTable($table);
+
         $installer->endSetup();
 
     }
diff --git a/app/code/Magento/Theme/Test/Unit/Helper/ThemeTest.php b/app/code/Magento/Theme/Test/Unit/Helper/ThemeTest.php
index 94702db1b8e8f816fdbf68a7206ca3d954663bf7..a8a5e56bc49d4502110dfae453ebf42088abee17 100644
--- a/app/code/Magento/Theme/Test/Unit/Helper/ThemeTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Helper/ThemeTest.php
@@ -54,11 +54,11 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
                 '<block class="Magento\Theme\Block\Html\Head" name="head">
                     <block class="Magento\Theme\Block\Html\Head\Css" name="magento-loader-js">
                         <arguments>
-                            <argument name="file" xsi:type="string">Magento_Core::test3.css</argument>
+                            <argument name="file" xsi:type="string">Magento_Theme::test3.css</argument>
                         </arguments>
                     </block>
                 </block>',
-                ['Magento_Core::test3.css' => 'Magento_Core::test3.css'],
+                ['Magento_Theme::test3.css' => 'Magento_Theme::test3.css'],
             ],
             [
                 '<block class="Magento\Theme\Block\Html\Head" name="head">
@@ -67,7 +67,7 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
                     </block>
                     <block class="Magento\Theme\Block\Html\Head\Css" name="magento-loader-js">
                         <arguments>
-                            <argument name="file" xsi:type="string">Magento_Core::test.css</argument>
+                            <argument name="file" xsi:type="string">Magento_Theme::test.css</argument>
                         </arguments>
                     </block>
                 </block>
@@ -76,7 +76,7 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
                         <arguments><argument name="file" xsi:type="string">testh.css</argument></arguments>
                     </block>
                     <block class="Magento\Theme\Block\Html\Head\Css" name="magento-loader-js">
-                        <arguments><argument name="file" xsi:type="string">Magento_Core::test.css</argument></arguments>
+                        <arguments><argument name="file" xsi:type="string">Magento_Theme::test.css</argument></arguments>
                     </block>
                 </referenceBlock>
                 <block type="Some_Block_Class">
@@ -85,7 +85,7 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
                     </block>
                     <block class="Magento\Theme\Block\Html\Head\Css" name="magento-loader-js">
                         <arguments>
-                            <argument name="file" xsi:type="string">Magento_Core::testa.css</argument>
+                            <argument name="file" xsi:type="string">Magento_Theme::testa.css</argument>
                         </arguments>
                     </block>
                 </block>
@@ -95,12 +95,12 @@ class ThemeTest extends \PHPUnit_Framework_TestCase
                     </block>
                     <block class="Magento\Theme\Block\Html\Head\Css" name="magento-loader-js">
                         <arguments>
-                            <argument name="file" xsi:type="string">Magento_Core::testb.css</argument>
+                            <argument name="file" xsi:type="string">Magento_Theme::testb.css</argument>
                         </arguments>
                     </block>
                 </referenceBlock>',
                 [
-                    'Magento_Core::test.css' => 'Magento_Core::test.css',
+                    'Magento_Theme::test.css' => 'Magento_Theme::test.css',
                     'test.css' => 'test.css',
                     'testh.css' => 'testh.css',
                 ],
diff --git a/app/code/Magento/Theme/Test/Unit/Model/CopyServiceTest.php b/app/code/Magento/Theme/Test/Unit/Model/CopyServiceTest.php
index 345dce2e805096d552f37a6a1d20d0ba1b40a3b2..ac449f10946e47e1112a59ebf9d8e2ea08bd2876 100644
--- a/app/code/Magento/Theme/Test/Unit/Model/CopyServiceTest.php
+++ b/app/code/Magento/Theme/Test/Unit/Model/CopyServiceTest.php
@@ -3,6 +3,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Theme\Test\Unit\Model;
 
 use Magento\Framework\App\Filesystem\DirectoryList;
@@ -171,7 +174,7 @@ class CopyServiceTest extends \PHPUnit_Framework_TestCase
             $this->returnValue($this->dirWriteMock)
         );
 
-        /* Init \Magento\Core\Model\Resource\Layout\Collection model  */
+        /* Init \Magento\Widget\Model\Resource\Layout\Update\Collection model  */
         $this->updateFactory = $this->getMock(
             'Magento\Widget\Model\Layout\UpdateFactory',
             ['create'],
@@ -460,6 +463,8 @@ class CopyServiceTest extends \PHPUnit_Framework_TestCase
 
     /**
      * cover \Magento\Theme\Model\CopyService::_copyFilesystemCustomization
+     *
+     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     public function testCopyFilesystemCustomization()
     {
diff --git a/app/code/Magento/Core/Test/Unit/Model/_files/frontend/magento_iphone/theme.xml b/app/code/Magento/Theme/Test/Unit/Model/_files/frontend/magento_iphone/theme.xml
similarity index 100%
rename from app/code/Magento/Core/Test/Unit/Model/_files/frontend/magento_iphone/theme.xml
rename to app/code/Magento/Theme/Test/Unit/Model/_files/frontend/magento_iphone/theme.xml
diff --git a/app/code/Magento/Core/Test/Unit/Model/_files/frontend/magento_iphone/theme_invalid.xml b/app/code/Magento/Theme/Test/Unit/Model/_files/frontend/magento_iphone/theme_invalid.xml
similarity index 100%
rename from app/code/Magento/Core/Test/Unit/Model/_files/frontend/magento_iphone/theme_invalid.xml
rename to app/code/Magento/Theme/Test/Unit/Model/_files/frontend/magento_iphone/theme_invalid.xml
diff --git a/app/code/Magento/Theme/composer.json b/app/code/Magento/Theme/composer.json
index f6aaacab3492dca03a1a3b2aea9bd125a7e21437..55d1d0974c5e76385343b32781bfc3a5bf2e2784 100644
--- a/app/code/Magento/Theme/composer.json
+++ b/app/code/Magento/Theme/composer.json
@@ -4,7 +4,6 @@
     "require": {
         "php": "~5.5.0|~5.6.0",
         "magento/module-store": "0.42.0-beta11",
-        "magento/module-core": "0.42.0-beta11",
         "magento/module-customer": "0.42.0-beta11",
         "magento/module-backend": "0.42.0-beta11",
         "magento/module-cms": "0.42.0-beta11",
diff --git a/app/code/Magento/Theme/etc/config.xml b/app/code/Magento/Theme/etc/config.xml
index e6f790127c4714ac4299fcfb08eecc31f3732b9e..643a69777e24aadbb2e9c79ba4e157795b0c8811 100644
--- a/app/code/Magento/Theme/etc/config.xml
+++ b/app/code/Magento/Theme/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <design>
             <head translate="default_description">
diff --git a/app/code/Magento/Theme/etc/module.xml b/app/code/Magento/Theme/etc/module.xml
index 30b3857eac7e968aa5d74f380132d0bac84934bf..e6744b59cb8c2f7c3e27117b3e1bac698c035985 100644
--- a/app/code/Magento/Theme/etc/module.xml
+++ b/app/code/Magento/Theme/etc/module.xml
@@ -8,7 +8,6 @@
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Theme" setup_version="2.0.1">
         <sequence>
-            <module name="Magento_Core"/>
             <module name="Magento_Store"/>
         </sequence>
     </module>
diff --git a/app/code/Magento/Theme/i18n/de_DE.csv b/app/code/Magento/Theme/i18n/de_DE.csv
index f94c143a9686ab7fe2a78f66b3bbb42def67285a..9ddaaa6a018d2d00c8c04113bd7028bef6f579c6 100644
--- a/app/code/Magento/Theme/i18n/de_DE.csv
+++ b/app/code/Magento/Theme/i18n/de_DE.csv
@@ -135,3 +135,8 @@ Copyright,Copyright
 "2 columns with right bar","2 Spalten mit rechter Leiste"
 "3 columns","3 Spalten"
 "Skip to content","Skip to content"
+"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
+"Start date cannot be greater than end date.","Das Anfangsdatum darf nicht nach dem Enddatum liegen."
+"Your design change for the specified store intersects with another one, please specify another date range.","Ihre Design-Änderung für den ausgewählten Store überschneidet sich mit einer anderen, bitte wählen Sie einen anderen Zeitraum."
+Copy,Copy
+"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
diff --git a/app/code/Magento/Theme/i18n/en_US.csv b/app/code/Magento/Theme/i18n/en_US.csv
index 4c98001e69bfe1572a7976f2ebe48d582ee71105..f95ee406e76baa20811c5c1907af603b1be44df9 100644
--- a/app/code/Magento/Theme/i18n/en_US.csv
+++ b/app/code/Magento/Theme/i18n/en_US.csv
@@ -135,3 +135,8 @@ Copyright,Copyright
 "2 columns with right bar","2 columns with right bar"
 "3 columns","3 columns"
 "Skip to content","Skip to content"
+"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
+"Start date cannot be greater than end date.","Start date cannot be greater than end date."
+"Your design change for the specified store intersects with another one, please specify another date range.","Your design change for the specified store intersects with another one, please specify another date range."
+Copy,Copy
+"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
diff --git a/app/code/Magento/Theme/i18n/es_ES.csv b/app/code/Magento/Theme/i18n/es_ES.csv
index 1a4040a9d1cb87410018cf9ce43491ebbf0322c6..7a46dedc66d9d59affa3a794493f078a16c87e6d 100644
--- a/app/code/Magento/Theme/i18n/es_ES.csv
+++ b/app/code/Magento/Theme/i18n/es_ES.csv
@@ -135,3 +135,8 @@ Copyright,Copyright
 "2 columns with right bar","2 columnas con barra a la derecha"
 "3 columns","3 columnas"
 "Skip to content","Skip to content"
+"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
+"Start date cannot be greater than end date.","La fecha de inicio no puede ser mayor que la de fin."
+"Your design change for the specified store intersects with another one, please specify another date range.","Su cambio de diseño para la tienda especificada se superpone con otro. Especifique otro rango de fecha."
+Copy,Copy
+"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
diff --git a/app/code/Magento/Theme/i18n/fr_FR.csv b/app/code/Magento/Theme/i18n/fr_FR.csv
index 62ff62757e9afd534ca8ac33d31dfb84a3e59a0a..3747f950596d312e4e1f0a11d2c5d8849a88b4d7 100644
--- a/app/code/Magento/Theme/i18n/fr_FR.csv
+++ b/app/code/Magento/Theme/i18n/fr_FR.csv
@@ -135,3 +135,8 @@ Copyright,Copyright
 "2 columns with right bar","2 colonnes avec barre droite"
 "3 columns","3 colonnes"
 "Skip to content","Skip to content"
+"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
+"Start date cannot be greater than end date.","La date de début ne peut pas être après la date de fin."
+"Your design change for the specified store intersects with another one, please specify another date range.","Votre changement de dessin pour la boutique spécifiée se mélange à une autre, veuillez spécifier une autre fourchette de dates."
+Copy,Copy
+"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
diff --git a/app/code/Magento/Theme/i18n/nl_NL.csv b/app/code/Magento/Theme/i18n/nl_NL.csv
index ccd1f5f63163a0157c5ec117af651680df90fe9d..d5197adbe59b97f1dc56295548afa765cad56feb 100644
--- a/app/code/Magento/Theme/i18n/nl_NL.csv
+++ b/app/code/Magento/Theme/i18n/nl_NL.csv
@@ -135,3 +135,8 @@ Copyright,Copyright
 "2 columns with right bar","2 kolommen met rechterbalk"
 "3 columns","3 kolommen"
 "Skip to content","Skip to content"
+"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
+"Start date cannot be greater than end date.","Begin datum kan niet later zijn dan eind datum."
+"Your design change for the specified store intersects with another one, please specify another date range.","Uw ontwerp verandering voor de gespecificeerde store komt in conflict met een andere, specificeer a.u.b. een andere datumrange."
+Copy,Copy
+"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
diff --git a/app/code/Magento/Theme/i18n/pt_BR.csv b/app/code/Magento/Theme/i18n/pt_BR.csv
index 0077e120ba4baa381f81b939acf52d96e6fcafb2..94aee8c839430e4a3704054cc9409b18b4f471d5 100644
--- a/app/code/Magento/Theme/i18n/pt_BR.csv
+++ b/app/code/Magento/Theme/i18n/pt_BR.csv
@@ -135,3 +135,8 @@ Copyright,Copyright
 "2 columns with right bar","2 colunas com barra à direita"
 "3 columns","3 colunas"
 "Skip to content","Skip to content"
+"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
+"Start date cannot be greater than end date.","Data de início não pode ser maior que a data do término."
+"Your design change for the specified store intersects with another one, please specify another date range.","Sua mudança de design para a loja especificada cruza com outra, por favor especifique outro intervalo de datas."
+Copy,Copy
+"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
diff --git a/app/code/Magento/Theme/i18n/zh_CN.csv b/app/code/Magento/Theme/i18n/zh_CN.csv
index da8737f17e11a5d9698c184561a38ac90e349abe..603295168ee776fac9e4f7eb8a611971c2e13ef5 100644
--- a/app/code/Magento/Theme/i18n/zh_CN.csv
+++ b/app/code/Magento/Theme/i18n/zh_CN.csv
@@ -135,3 +135,8 @@ Copyright,Copyright
 "2 columns with right bar",2栏带右边栏
 "3 columns",3栏
 "Skip to content","Skip to content"
+"Invalid regular expression: ""%1"".","Invalid regular expression: ""%1""."
+"Start date cannot be greater than end date.",开始日期不能大于结束日期。
+"Your design change for the specified store intersects with another one, please specify another date range.",您对指定商店设计的更改和另一个有交叉,请重新指定日期范围。
+Copy,Copy
+"Circular-reference in theme inheritance detected for ""%1""","Circular-reference in theme inheritance detected for ""%1"""
diff --git a/app/code/Magento/Translation/etc/config.xml b/app/code/Magento/Translation/etc/config.xml
index 19cb337a6b6a804f91d385c21a64995101e8746b..391f9c3fba00bb6e418872b533c82e13c6eaddb0 100644
--- a/app/code/Magento/Translation/etc/config.xml
+++ b/app/code/Magento/Translation/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <dev>
             <translate_inline>
diff --git a/app/code/Magento/Translation/etc/module.xml b/app/code/Magento/Translation/etc/module.xml
index 0b973ed3ef7beaa4cb84e83e07e9debccd8bffba..669f8ae935645323723a5ea9e3732458e497f8dc 100644
--- a/app/code/Magento/Translation/etc/module.xml
+++ b/app/code/Magento/Translation/etc/module.xml
@@ -7,8 +7,5 @@
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
     <module name="Magento_Translation" setup_version="2.0.0">
-        <sequence>
-            <module name="Magento_Core"/>
-        </sequence>
     </module>
 </config>
diff --git a/app/code/Magento/Ups/etc/config.xml b/app/code/Magento/Ups/etc/config.xml
index 0ff0850998865dce77c0dad749fac8982e896b39..b3df7eabdde155e4811c5ae26695b7afdd28e2b5 100644
--- a/app/code/Magento/Ups/etc/config.xml
+++ b/app/code/Magento/Ups/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <carriers>
             <ups>
diff --git a/app/code/Magento/UrlRewrite/etc/config.xml b/app/code/Magento/UrlRewrite/etc/config.xml
index a174ec7abdd2bcf9bd418008f92a48ab6b3374f0..0179be80676ffaf771c3945882115a947e4bf62e 100644
--- a/app/code/Magento/UrlRewrite/etc/config.xml
+++ b/app/code/Magento/UrlRewrite/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <url_rewrite>
             <entity_types>
diff --git a/app/code/Magento/User/etc/config.xml b/app/code/Magento/User/etc/config.xml
index 1496ade1d2170a7d9f73927ceded5ac24ab19265..6ef863af41a76d4c51389704d015394304001585 100644
--- a/app/code/Magento/User/etc/config.xml
+++ b/app/code/Magento/User/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <admin>
             <emails>
diff --git a/app/code/Magento/Usps/composer.json b/app/code/Magento/Usps/composer.json
index be86d099ce9c69870617f49046995e24886cb319..41c06f2dbd0461bc65cb25993b566acbf0530d30 100644
--- a/app/code/Magento/Usps/composer.json
+++ b/app/code/Magento/Usps/composer.json
@@ -6,11 +6,11 @@
         "magento/module-store": "0.42.0-beta11",
         "magento/module-shipping": "0.42.0-beta11",
         "magento/module-directory": "0.42.0-beta11",
-        "magento/module-core": "0.42.0-beta11",
         "magento/module-catalog": "0.42.0-beta11",
         "magento/module-sales": "0.42.0-beta11",
         "magento/module-catalog-inventory": "0.42.0-beta11",
         "magento/module-quote": "0.42.0-beta11",
+        "magento/module-config": "0.42.0-beta11",
         "magento/framework": "0.42.0-beta11",
         "lib-libxml": "*",
         "magento/magento-composer-installer": "*"
diff --git a/app/code/Magento/Usps/etc/config.xml b/app/code/Magento/Usps/etc/config.xml
index db37b2e8aafd7705a6b2b72fde6e006ea37231cb..972c58188197743a4a1791eed981dafaea4b953c 100644
--- a/app/code/Magento/Usps/etc/config.xml
+++ b/app/code/Magento/Usps/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <carriers>
             <usps>
diff --git a/app/code/Magento/Variable/i18n/de_DE.csv b/app/code/Magento/Variable/i18n/de_DE.csv
new file mode 100644
index 0000000000000000000000000000000000000000..5b82c65d44622a54d7d365b4458e96df3f0ad5d4
--- /dev/null
+++ b/app/code/Magento/Variable/i18n/de_DE.csv
@@ -0,0 +1,4 @@
+"Custom Variables","Angepasste Variablen"
+"Variable Code must be unique.","Variabler Code muß eindeutig sein."
+"Validation has failed.","Prüfung fehlgeschlagen."
+"Insert Variable...","Insert Variable..."
diff --git a/app/code/Magento/Variable/i18n/en_US.csv b/app/code/Magento/Variable/i18n/en_US.csv
new file mode 100644
index 0000000000000000000000000000000000000000..d68ff06262284b6f05c4f7b5d889d9088673c0f1
--- /dev/null
+++ b/app/code/Magento/Variable/i18n/en_US.csv
@@ -0,0 +1,4 @@
+"Custom Variables","Custom Variables"
+"Variable Code must be unique.","Variable Code must be unique."
+"Validation has failed.","Validation has failed."
+"Insert Variable...","Insert Variable..."
diff --git a/app/code/Magento/Variable/i18n/es_ES.csv b/app/code/Magento/Variable/i18n/es_ES.csv
new file mode 100644
index 0000000000000000000000000000000000000000..a17a926b175fcdd5189d3562f4cf843df86504ad
--- /dev/null
+++ b/app/code/Magento/Variable/i18n/es_ES.csv
@@ -0,0 +1,4 @@
+"Custom Variables","Variables personalizadas"
+"Variable Code must be unique.","El código de variable debe ser único."
+"Validation has failed.","Falló la validación."
+"Insert Variable...","Insert Variable..."
diff --git a/app/code/Magento/Variable/i18n/fr_FR.csv b/app/code/Magento/Variable/i18n/fr_FR.csv
new file mode 100644
index 0000000000000000000000000000000000000000..8f14328226eb363ef5141bedf4e73c999f23e4fd
--- /dev/null
+++ b/app/code/Magento/Variable/i18n/fr_FR.csv
@@ -0,0 +1,4 @@
+"Custom Variables","Variables sur mesure"
+"Variable Code must be unique.","La variable code doit être unique."
+"Validation has failed.","Validation a échouée"
+"Insert Variable...","Insert Variable..."
diff --git a/app/code/Magento/Variable/i18n/nl_NL.csv b/app/code/Magento/Variable/i18n/nl_NL.csv
new file mode 100644
index 0000000000000000000000000000000000000000..e16b8d4192b1b0eed3f01a2d806482d84d94de8a
--- /dev/null
+++ b/app/code/Magento/Variable/i18n/nl_NL.csv
@@ -0,0 +1,4 @@
+"Custom Variables","Aangepaste variabelen"
+"Variable Code must be unique.","Variabele Code moet uniek zijn."
+"Validation has failed.","Validatie is mislukt."
+"Insert Variable...","Insert Variable..."
diff --git a/app/code/Magento/Variable/i18n/pt_BR.csv b/app/code/Magento/Variable/i18n/pt_BR.csv
new file mode 100644
index 0000000000000000000000000000000000000000..e073700f36435e76d055a351da2bba66824895c5
--- /dev/null
+++ b/app/code/Magento/Variable/i18n/pt_BR.csv
@@ -0,0 +1,4 @@
+"Custom Variables","Variáveis de Personalização."
+"Variable Code must be unique.","Código da Variável deve ser único."
+"Validation has failed.","Validação falhou."
+"Insert Variable...","Insert Variable..."
diff --git a/app/code/Magento/Variable/i18n/zh_CN.csv b/app/code/Magento/Variable/i18n/zh_CN.csv
new file mode 100644
index 0000000000000000000000000000000000000000..b690819a8319dfedfd8aa2579201e599fb7c276d
--- /dev/null
+++ b/app/code/Magento/Variable/i18n/zh_CN.csv
@@ -0,0 +1,4 @@
+"Custom Variables",自定义变量
+"Variable Code must be unique.",变量代码必须是唯一的。
+"Validation has failed.",验证失败。
+"Insert Variable...","Insert Variable..."
diff --git a/app/code/Magento/Webapi/Model/Config.php b/app/code/Magento/Webapi/Model/Config.php
index af0823e23e7838d21fedcd31515728fc8f0dd91f..1691f95834932b1aa6e26ec2298a0fff0c7c36d9 100644
--- a/app/code/Magento/Webapi/Model/Config.php
+++ b/app/code/Magento/Webapi/Model/Config.php
@@ -70,65 +70,4 @@ class Config
         }
         return $this->services;
     }
-
-    /**
-     * Identify the list of service name parts including sub-services using class name.
-     *
-     * Examples of input/output pairs:
-     * <pre>
-     * - 'Magento\Customer\Service\V1\CustomerAccountInterface', false => ['CustomerCustomerAccount']
-     * - 'Vendor\Customer\Service\V1\Customer\AddressInterface', true  => ['VendorCustomer', 'Address', 'V1']
-     * </pre>
-     *
-     * @param string $className
-     * @param bool $preserveVersion Should version be preserved during class name conversion into service name
-     * @return string[]
-     * @throws \InvalidArgumentException When class is not valid API service.
-     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
-     */
-    public function getServiceNameParts($className, $preserveVersion = false)
-    {
-        if (!preg_match(\Magento\Webapi\Model\Config::SERVICE_CLASS_PATTERN, $className, $matches)) {
-            $apiClassPattern = "#^(.+?)\\\\(.+?)\\\\Api\\\\(.+?)(Interface)?$#";
-            preg_match($apiClassPattern, $className, $matches);
-        }
-
-        if (!empty($matches)) {
-            $moduleNamespace = $matches[1];
-            $moduleName = $matches[2];
-            $moduleNamespace = ($moduleNamespace == 'Magento') ? '' : $moduleNamespace;
-            if ($matches[4] === 'Interface') {
-                $matches[4] = $matches[3];
-                $matches[3] = 'V1';
-            }
-            $serviceNameParts = explode('\\', trim($matches[4], '\\'));
-            if ($moduleName == $serviceNameParts[0]) {
-                /** Avoid duplication of words in service name */
-                $moduleName = '';
-            }
-            $parentServiceName = $moduleNamespace . $moduleName . array_shift($serviceNameParts);
-            array_unshift($serviceNameParts, $parentServiceName);
-            if ($preserveVersion) {
-                $serviceVersion = $matches[3];
-                $serviceNameParts[] = $serviceVersion;
-            }
-            return $serviceNameParts;
-        } elseif (preg_match(\Magento\Webapi\Model\Config::API_PATTERN, $className, $matches)) {
-            $moduleNamespace = $matches[1];
-            $moduleName = $matches[2];
-            $moduleNamespace = ($moduleNamespace == 'Magento') ? '' : $moduleNamespace;
-            $serviceNameParts = explode('\\', trim($matches[3], '\\'));
-            if ($moduleName == $serviceNameParts[0]) {
-                /** Avoid duplication of words in service name */
-                $moduleName = '';
-            }
-            $parentServiceName = $moduleNamespace . $moduleName . array_shift($serviceNameParts);
-            array_unshift($serviceNameParts, $parentServiceName);
-            //Add temporary dummy version
-            $serviceNameParts[] = 'V1';
-            return $serviceNameParts;
-        }
-
-        throw new \InvalidArgumentException(sprintf('The service interface name "%s" is invalid.', $className));
-    }
 }
diff --git a/app/code/Magento/Webapi/Model/Config/Converter.php b/app/code/Magento/Webapi/Model/Config/Converter.php
index 44a8b35ee635f05f536f055c6d063dd107643ac0..c9b557f099fa5c12d20498fd8b79155aa65675cc 100644
--- a/app/code/Magento/Webapi/Model/Config/Converter.php
+++ b/app/code/Magento/Webapi/Model/Config/Converter.php
@@ -26,11 +26,11 @@ class Converter implements \Magento\Framework\Config\ConverterInterface
     const KEY_DATA_PARAMETERS = 'parameters';
     const KEY_SOURCE = 'source';
     const KEY_METHOD = 'method';
+    const KEY_METHODS = 'methods';
     /**#@-*/
 
     /**
      * {@inheritdoc}
-     *
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
@@ -48,6 +48,13 @@ class Converter implements \Magento\Framework\Config\ConverterInterface
             $service = $route->getElementsByTagName('service')->item(0);
             $serviceClass = $service->attributes->getNamedItem('class')->nodeValue;
             $serviceMethod = $service->attributes->getNamedItem('method')->nodeValue;
+            $url = trim($route->attributes->getNamedItem('url')->nodeValue);
+            $version = $this->convertVersion($url);
+
+            $serviceClassData = [];
+            if (isset($result[self::KEY_SERVICES][$serviceClass][$version])) {
+                $serviceClassData = $result[self::KEY_SERVICES][$serviceClass][$version];
+            }
 
             $resources = $route->getElementsByTagName('resource');
             $resourceReferences = [];
@@ -62,48 +69,24 @@ class Converter implements \Magento\Framework\Config\ConverterInterface
                 // For SOAP
                 $resourcePermissionSet[] = $ref;
             }
-            if (!isset($result[self::KEY_SERVICES][$serviceClass][$serviceMethod][self::KEY_ACL_RESOURCES])) {
-                $result[self::KEY_SERVICES][$serviceClass][$serviceMethod][self::KEY_ACL_RESOURCES]
-                    = $resourcePermissionSet;
+
+            if (!isset($serviceClassData[self::KEY_METHODS][$serviceMethod])) {
+                $serviceClassData[self::KEY_METHODS][$serviceMethod][self::KEY_ACL_RESOURCES] = $resourcePermissionSet;
             } else {
-                $result[self::KEY_SERVICES][$serviceClass][$serviceMethod][self::KEY_ACL_RESOURCES] =
+                $serviceClassData[self::KEY_METHODS][$serviceMethod][self::KEY_ACL_RESOURCES] =
                     array_unique(
                         array_merge(
-                            $result[self::KEY_SERVICES][$serviceClass][$serviceMethod][self::KEY_ACL_RESOURCES],
+                            $serviceClassData[self::KEY_METHODS][$serviceMethod][self::KEY_ACL_RESOURCES],
                             $resourcePermissionSet
                         )
                     );
             }
 
-            $parameters = $route->getElementsByTagName('parameter');
-            $data = [];
-            /** @var \DOMElement $parameter */
-            foreach ($parameters as $parameter) {
-                if ($parameter->nodeType != XML_ELEMENT_NODE) {
-                    continue;
-                }
-                $name = $parameter->attributes->getNamedItem('name')->nodeValue;
-                $forceNode = $parameter->attributes->getNamedItem('force');
-                $force = $forceNode ? (bool)$forceNode->nodeValue : false;
-                $value = $parameter->nodeValue;
-                $data[$name] = [
-                    self::KEY_FORCE => $force,
-                    self::KEY_VALUE => ($value === 'null') ? null : $value,
-                ];
-                $sourceNode = $parameter->attributes->getNamedItem('source');
-                if ($sourceNode) {
-                    $data[$name][self::KEY_SOURCE] = $sourceNode->nodeValue;
-                }
-                $methodNode = $parameter->attributes->getNamedItem('method');
-                if ($methodNode) {
-                    $data[$name][self::KEY_METHOD] = $methodNode->nodeValue;
-                }
-            }
-
             $method = $route->attributes->getNamedItem('method')->nodeValue;
-            $url = trim($route->attributes->getNamedItem('url')->nodeValue);
             $secureNode = $route->attributes->getNamedItem('secure');
             $secure = $secureNode ? (bool)trim($secureNode->nodeValue) : false;
+            $data = $this->convertMethodParameters($route->getElementsByTagName('parameter'));
+
             // We could handle merging here by checking if the route already exists
             $result[self::KEY_ROUTES][$url][$method] = [
                 self::KEY_SECURE => $secure,
@@ -114,12 +97,62 @@ class Converter implements \Magento\Framework\Config\ConverterInterface
                 self::KEY_ACL_RESOURCES => $resourceReferences,
                 self::KEY_DATA_PARAMETERS => $data,
             ];
+
             $serviceSecure = false;
-            if (isset($result[self::KEY_SERVICES][$serviceClass][$serviceMethod][self::KEY_SECURE])) {
-                $serviceSecure = $result[self::KEY_SERVICES][$serviceClass][$serviceMethod][self::KEY_SECURE];
+            if (isset($serviceClassData[self::KEY_METHODS][$serviceMethod][self::KEY_SECURE])) {
+                $serviceSecure = $serviceClassData[self::KEY_METHODS][$serviceMethod][self::KEY_SECURE];
             }
-            $result[self::KEY_SERVICES][$serviceClass][$serviceMethod][self::KEY_SECURE] = $serviceSecure || $secure;
+            $serviceClassData[self::KEY_METHODS][$serviceMethod][self::KEY_SECURE] = $serviceSecure || $secure;
+
+            $result[self::KEY_SERVICES][$serviceClass][$version] = $serviceClassData;
         }
         return $result;
     }
+
+    /**
+     * Parses the method parameters into a string array.
+     *
+     * @param \DOMNodeList $parameters
+     * @return array
+     * @SuppressWarnings(PHPMD.NPathComplexity)
+     */
+    protected function convertMethodParameters($parameters)
+    {
+        $data = [];
+        /** @var \DOMElement $parameter */
+        foreach ($parameters as $parameter) {
+            if ($parameter->nodeType != XML_ELEMENT_NODE) {
+                continue;
+            }
+            $name = $parameter->attributes->getNamedItem('name')->nodeValue;
+            $forceNode = $parameter->attributes->getNamedItem('force');
+            $force = $forceNode ? (bool)$forceNode->nodeValue : false;
+            $value = $parameter->nodeValue;
+            $data[$name] = [
+                self::KEY_FORCE => $force,
+                self::KEY_VALUE => ($value === 'null') ? null : $value,
+            ];
+            $sourceNode = $parameter->attributes->getNamedItem('source');
+            if ($sourceNode) {
+                $data[$name][self::KEY_SOURCE] = $sourceNode->nodeValue;
+            }
+            $methodNode = $parameter->attributes->getNamedItem('method');
+            if ($methodNode) {
+                $data[$name][self::KEY_METHOD] = $methodNode->nodeValue;
+            }
+        }
+        return $data;
+    }
+
+    /**
+     * Derive the version from the provided URL.
+     * Assumes the version is the first portion of the URL. For example, '/V1/customers'
+     *
+     * @param string $url
+     * @return string
+     */
+    protected function convertVersion($url)
+    {
+        return substr($url, 1, strpos($url, '/', 1)-1);
+    }
 }
diff --git a/app/code/Magento/Webapi/Model/Soap/Config.php b/app/code/Magento/Webapi/Model/Soap/Config.php
index 1d686f3f1f06f67083c01a4d7b2183b7a98dee04..70c89d3c12efd0b01707cdca5d2399f1d4d992d2 100644
--- a/app/code/Magento/Webapi/Model/Soap/Config.php
+++ b/app/code/Magento/Webapi/Model/Soap/Config.php
@@ -104,7 +104,7 @@ class Config
     /**
      * Retrieve the list of SOAP operations available in the system
      *
-     * @param array $requestedService The list of requested services with their versions
+     * @param array $requestedServices The list of requested services with their versions
      * @return array <pre>
      * array(
      *     array(
@@ -115,15 +115,15 @@ class Config
      *      ...
      * )</pre>
      */
-    protected function getSoapOperations($requestedService)
+    protected function getSoapOperations($requestedServices)
     {
         if (null == $this->soapOperations) {
             $this->soapOperations = [];
-            foreach ($this->getRequestedSoapServices($requestedService) as $serviceData) {
+            foreach ($this->getRequestedSoapServices($requestedServices) as $serviceName => $serviceData) {
                 foreach ($serviceData[self::KEY_SERVICE_METHODS] as $methodData) {
                     $method = $methodData[self::KEY_METHOD];
                     $class = $serviceData[self::KEY_CLASS];
-                    $operationName = $this->getSoapOperation($class, $method);
+                    $operationName = $serviceName . ucfirst($method);
                     $this->soapOperations[$operationName] = [
                         self::KEY_CLASS => $class,
                         self::KEY_METHOD => $method,
@@ -163,25 +163,27 @@ class Config
     protected function initServicesMetadata()
     {
         $soapServices = [];
-        foreach ($this->config->getServices()[Converter::KEY_SERVICES] as $serviceClass => $serviceData) {
-            $serviceName = $this->getServiceName($serviceClass);
-            foreach ($serviceData as $methodName => $methodMetadata) {
-                $soapServices[$serviceName][self::KEY_SERVICE_METHODS][$methodName] = [
-                    self::KEY_METHOD => $methodName,
-                    self::KEY_IS_REQUIRED => (bool)$methodMetadata[Converter::KEY_SECURE],
-                    self::KEY_IS_SECURE => $methodMetadata[Converter::KEY_SECURE],
-                    self::KEY_ACL_RESOURCES => $methodMetadata[Converter::KEY_ACL_RESOURCES],
-                ];
-                $soapServices[$serviceName][self::KEY_CLASS] = $serviceClass;
+        foreach ($this->config->getServices()[Converter::KEY_SERVICES] as $serviceClass => $serviceVersionData) {
+            foreach ($serviceVersionData as $version => $serviceData) {
+                $serviceName = $this->getServiceName($serviceClass, $version);
+                foreach ($serviceData[Converter::KEY_METHODS] as $methodName => $methodMetadata) {
+                    $soapServices[$serviceName][self::KEY_SERVICE_METHODS][$methodName] = [
+                        self::KEY_METHOD => $methodName,
+                        self::KEY_IS_REQUIRED => (bool)$methodMetadata[Converter::KEY_SECURE],
+                        self::KEY_IS_SECURE => $methodMetadata[Converter::KEY_SECURE],
+                        self::KEY_ACL_RESOURCES => $methodMetadata[Converter::KEY_ACL_RESOURCES],
+                    ];
+                    $soapServices[$serviceName][self::KEY_CLASS] = $serviceClass;
+                }
+                $reflectedMethodsMetadata = $this->classReflector->reflectClassMethods(
+                    $serviceClass,
+                    $soapServices[$serviceName][self::KEY_SERVICE_METHODS]
+                );
+                $soapServices[$serviceName][self::KEY_SERVICE_METHODS] = array_merge_recursive(
+                    $soapServices[$serviceName][self::KEY_SERVICE_METHODS],
+                    $reflectedMethodsMetadata
+                );
             }
-            $reflectedMethodsMetadata = $this->classReflector->reflectClassMethods(
-                $serviceClass,
-                $soapServices[$serviceName][self::KEY_SERVICE_METHODS]
-            );
-            $soapServices[$serviceName][self::KEY_SERVICE_METHODS] = array_merge_recursive(
-                $soapServices[$serviceName][self::KEY_SERVICE_METHODS],
-                $reflectedMethodsMetadata
-            );
         }
 
         return $soapServices;
@@ -225,7 +227,7 @@ class Config
         $soapServicesConfig = $this->getSoapServicesConfig();
         foreach ($requestedServices as $serviceName) {
             if (isset($soapServicesConfig[$serviceName])) {
-                $services[] = $soapServicesConfig[$serviceName];
+                $services[$serviceName] = $soapServicesConfig[$serviceName];
             }
         }
         return $services;
@@ -236,11 +238,12 @@ class Config
      *
      * @param string $interfaceName e.g. \Magento\Catalog\Api\ProductInterfaceV1
      * @param string $methodName e.g. create
+     * @param string $version
      * @return string e.g. catalogProductCreate
      */
-    public function getSoapOperation($interfaceName, $methodName)
+    public function getSoapOperation($interfaceName, $methodName, $version)
     {
-        $serviceName = $this->getServiceName($interfaceName);
+        $serviceName = $this->getServiceName($interfaceName, $version);
         $operationName = $serviceName . ucfirst($methodName);
         return $operationName;
     }
@@ -270,13 +273,53 @@ class Config
      * </pre>
      *
      * @param string $interfaceName
+     * @param string $version
      * @param bool $preserveVersion Should version be preserved during interface name conversion into service name
      * @return string
      * @throws \InvalidArgumentException
+     * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      */
-    public function getServiceName($interfaceName, $preserveVersion = true)
+    public function getServiceName($interfaceName, $version, $preserveVersion = true)
     {
-        $serviceNameParts = $this->config->getServiceNameParts($interfaceName, $preserveVersion);
+        if (!preg_match(\Magento\Webapi\Model\Config::SERVICE_CLASS_PATTERN, $interfaceName, $matches)) {
+            $apiClassPattern = "#^(.+?)\\\\(.+?)\\\\Api\\\\(.+?)(Interface)?$#";
+            preg_match($apiClassPattern, $interfaceName, $matches);
+        }
+
+        if (!empty($matches)) {
+            $moduleNamespace = $matches[1];
+            $moduleName = $matches[2];
+            $moduleNamespace = ($moduleNamespace == 'Magento') ? '' : $moduleNamespace;
+            if ($matches[4] === 'Interface') {
+                $matches[4] = $matches[3];
+            }
+            $serviceNameParts = explode('\\', trim($matches[4], '\\'));
+            if ($moduleName == $serviceNameParts[0]) {
+                /** Avoid duplication of words in service name */
+                $moduleName = '';
+            }
+            $parentServiceName = $moduleNamespace . $moduleName . array_shift($serviceNameParts);
+            array_unshift($serviceNameParts, $parentServiceName);
+            if ($preserveVersion) {
+                $serviceNameParts[] = $version;
+            }
+        } elseif (preg_match(\Magento\Webapi\Model\Config::API_PATTERN, $interfaceName, $matches)) {
+            $moduleNamespace = $matches[1];
+            $moduleName = $matches[2];
+            $moduleNamespace = ($moduleNamespace == 'Magento') ? '' : $moduleNamespace;
+            $serviceNameParts = explode('\\', trim($matches[3], '\\'));
+            if ($moduleName == $serviceNameParts[0]) {
+                /** Avoid duplication of words in service name */
+                $moduleName = '';
+            }
+            $parentServiceName = $moduleNamespace . $moduleName . array_shift($serviceNameParts);
+            array_unshift($serviceNameParts, $parentServiceName);
+            if ($preserveVersion) {
+                $serviceNameParts[] = $version;
+            }
+        } else {
+            throw new \InvalidArgumentException(sprintf('The service interface name "%s" is invalid.', $interfaceName));
+        }
         return lcfirst(implode('', $serviceNameParts));
     }
 }
diff --git a/app/code/Magento/Webapi/Test/Unit/Model/Config/_files/webapi.php b/app/code/Magento/Webapi/Test/Unit/Model/Config/_files/webapi.php
index 4f48117117fe5802137e04dc002b86c4a472a0f5..aecbdbde2dcecb4ea98897510899513cb08a7528 100644
--- a/app/code/Magento/Webapi/Test/Unit/Model/Config/_files/webapi.php
+++ b/app/code/Magento/Webapi/Test/Unit/Model/Config/_files/webapi.php
@@ -6,26 +6,30 @@
 return [
     'services' => [
         'Magento\Customer\Api\CustomerRepositoryInterface' => [
-            'getById' => [
-                'resources' => [
-                    'Magento_Customer::customer_self',
-                    'Magento_Customer::read',
-                ],
-                'secure' => false,
-            ],
-            'save' => [
-                'resources' => [
-                    'Magento_Customer::customer_self',
-                    'Magento_Customer::manage'
-                ],
-                'secure' => true,
-            ],
-            'deleteById' => [
-                'resources' => [
-                    'Magento_Customer::manage',
-                    'Magento_Customer::delete',
+            'V1' => [
+                'methods' => [
+                    'getById' => [
+                        'resources' => [
+                            'Magento_Customer::customer_self',
+                            'Magento_Customer::read',
+                        ],
+                        'secure' => false,
+                    ],
+                    'save' => [
+                        'resources' => [
+                            'Magento_Customer::customer_self',
+                            'Magento_Customer::manage'
+                        ],
+                        'secure' => true,
+                    ],
+                    'deleteById' => [
+                        'resources' => [
+                            'Magento_Customer::manage',
+                            'Magento_Customer::delete',
+                        ],
+                        'secure' => false,
+                    ],
                 ],
-                'secure' => false,
             ],
         ],
     ],
diff --git a/app/code/Magento/Webapi/Test/Unit/Model/Soap/ConfigTest.php b/app/code/Magento/Webapi/Test/Unit/Model/Soap/ConfigTest.php
index 27a4024682396bc3a020703a55262c1b20e6b17a..6c747b1f54a973c3de6396642b3521c16009e242 100644
--- a/app/code/Magento/Webapi/Test/Unit/Model/Soap/ConfigTest.php
+++ b/app/code/Magento/Webapi/Test/Unit/Model/Soap/ConfigTest.php
@@ -6,6 +6,8 @@
  * See COPYING.txt for license details.
  */
 
+// @codingStandardsIgnoreFile
+
 /**
  * Class implements tests for \Magento\Webapi\Model\Soap\Config class.
  */
@@ -39,23 +41,31 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
         $servicesConfig = [
             'services' => [
                 'Magento\Customer\Api\AccountManagementInterface' => [
-                    'activate' => [
-                        'resources' => [
-                            [
-                                'Magento_Customer::manage',
+                    'V1' => [
+                        'methods' => [
+                            'activate' => [
+                                'resources' => [
+                                    [
+                                        'Magento_Customer::manage',
+                                    ],
+                                ],
+                                'secure' => false,
                             ],
                         ],
-                        'secure' => false,
                     ],
                 ],
                 'Magento\Customer\Api\CustomerRepositoryInterface' => [
-                    'getById' => [
-                        'resources' => [
-                            [
-                                'Magento_Customer::customer',
+                    'V1' => [
+                        'methods' => [
+                            'getById' => [
+                                'resources' => [
+                                    [
+                                        'Magento_Customer::customer',
+                                    ],
+                                ],
+                                'secure' => false,
                             ],
                         ],
-                        'secure' => false,
                     ],
                 ],
             ],
@@ -98,17 +108,18 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
     public function testGetRequestedSoapServices()
     {
         $expectedResult = [
-            [
-                'methods' => [
-                    'activate' => [
-                        'method' => 'activate',
-                        'inputRequired' => '',
-                        'isSecure' => '',
-                        'resources' => [['Magento_Customer::manage']],
+            'customerAccountManagementV1' =>
+                [
+                    'methods' => [
+                        'activate' => [
+                            'method' => 'activate',
+                            'inputRequired' => '',
+                            'isSecure' => '',
+                            'resources' => [['Magento_Customer::manage']],
+                        ],
                     ],
+                    'class' => 'Magento\Customer\Api\AccountManagementInterface',
                 ],
-                'class' => 'Magento\Customer\Api\AccountManagementInterface',
-            ],
         ];
         $result = $this->_soapConfig->getRequestedSoapServices(
             ['customerAccountManagementV1', 'moduleBarV2', 'moduleBazV1']
@@ -135,58 +146,78 @@ class ConfigTest extends \PHPUnit_Framework_TestCase
     {
         $expectedResult = 'customerAccountManagementV1Activate';
         $soapOperation = $this->_soapConfig
-            ->getSoapOperation('Magento\Customer\Api\AccountManagementInterface', 'activate');
+            ->getSoapOperation('Magento\Customer\Api\AccountManagementInterface', 'activate', 'V1');
         $this->assertEquals($expectedResult, $soapOperation);
     }
+
     /**
-     * Test identifying service name parts including subservices using class name.
+     * Test identifying service name including subservices using class name.
      *
-     * @dataProvider serviceNamePartsDataProvider
+     * @dataProvider serviceNameDataProvider
      */
-    public function testGetServiceNameParts($className, $preserveVersion, $expected)
+    public function testGetServiceName($className, $version, $preserveVersion, $expected)
     {
-        $actual = $this->_soapConfig->getServiceName($className, $preserveVersion);
+        $actual = $this->_soapConfig->getServiceName($className, $version, $preserveVersion);
         $this->assertEquals($expected, $actual);
     }
 
     /**
-     * Dataprovider for serviceNameParts
+     * Dataprovider for testGetServiceName
      *
      * @return string
      */
-    public function serviceNamePartsDataProvider()
+    public function serviceNameDataProvider()
     {
         return [
-            ['Magento\Customer\Api\AccountManagementInterface', false, 'customerAccountManagement'],
-            [
-                'Magento\Customer\Api\AddressRepositoryInterface',
-                true,
-                'customerAddressRepositoryV1'
-            ],
+            ['Magento\Customer\Api\AccountManagementInterface', 'V1', false, 'customerAccountManagement'],
+            ['Magento\Customer\Api\AddressRepositoryInterface', 'V1', true, 'customerAddressRepositoryV1'],
         ];
     }
 
     /**
      * @expectedException \InvalidArgumentException
-     * @dataProvider dataProviderForTestGetServiceNamePartsInvalidName
+     * @dataProvider dataProviderForTestGetServiceNameInvalidName
      */
-    public function testGetServiceNamePartsInvalidName($interfaceClassName)
+    public function testGetServiceNameInvalidName($interfaceClassName, $version)
     {
-        $this->_soapConfig->getServiceName($interfaceClassName);
+        $this->_soapConfig->getServiceName($interfaceClassName, $version);
     }
 
-    public function dataProviderForTestGetServiceNamePartsInvalidName()
+    /**
+     * Dataprovider for testGetServiceNameInvalidName
+     *
+     * @return string
+     */
+    public function dataProviderForTestGetServiceNameInvalidName()
     {
         return [
-            ['BarV1Interface'], // Missed vendor, module, 'Service'
-            ['Service\\V1Interface'], // Missed vendor and module
-            ['Magento\\Foo\\Service\\BarVxInterface'], // Version number should be a number
-            ['Magento\\Foo\\Service\\BarInterface'], // Version missed
-            ['Magento\\Foo\\Service\\BarV1'], // 'Interface' missed
-            ['Foo\\Service\\BarV1Interface'], // Module missed
-            ['Foo\\BarV1Interface'] // Module and 'Service' missed
+            ['BarV1Interface', 'V1'], // Missed vendor, module, 'Service'
+            ['Service\\V1Interface', 'V1'], // Missed vendor and module
+            ['Magento\\Foo\\Service\\BarVxInterface', 'V1'], // Version number should be a number
+            ['Magento\\Foo\\Service\\BarInterface', 'V1'], // Version missed
+            ['Magento\\Foo\\Service\\BarV1', 'V1'], // 'Interface' missed
+            ['Foo\\Service\\BarV1Interface', 'V1'], // Module missed
+            ['Foo\\BarV1Interface', 'V1'] // Module and 'Service' missed
         ];
     }
+
+    public function testGetServiceMetadata()
+    {
+        $expectedResult = [
+            'methods' => [
+                'activate' => [
+                    'method' => 'activate',
+                    'inputRequired' => '',
+                    'isSecure' => '',
+                    'resources' => [['Magento_Customer::manage']],
+                ],
+            ],
+            'class' => 'Magento\Customer\Api\AccountManagementInterface',
+        ];
+        $result = $this->_soapConfig->getServiceMetadata('customerAccountManagementV1');
+        $this->assertEquals($expectedResult, $result);
+
+    }
 }
 
 require_once realpath(__DIR__ . '/../../_files/test_interfaces.php');
diff --git a/app/code/Magento/Weee/etc/config.xml b/app/code/Magento/Weee/etc/config.xml
index bf472cca89956ba848db6c37637832615fa0ee93..164097b1280fa003f1c8d62ed9db74efb31ee6cb 100644
--- a/app/code/Magento/Weee/etc/config.xml
+++ b/app/code/Magento/Weee/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <sales>
             <totals_sort>
diff --git a/app/code/Magento/Wishlist/etc/config.xml b/app/code/Magento/Wishlist/etc/config.xml
index cdb6ad259a73c23099cc0e14420d84242e45efab..77c070c2b505b4679a54b7dfbd36e5295955be49 100644
--- a/app/code/Magento/Wishlist/etc/config.xml
+++ b/app/code/Magento/Wishlist/etc/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../Store/etc/config.xsd">
     <default>
         <wishlist>
             <general>
diff --git a/app/code/Magento/Wishlist/etc/frontend/page_types.xml b/app/code/Magento/Wishlist/etc/frontend/page_types.xml
index cd44dd1f773edd2f4e179b0d24f5eb5b888d10c0..9d938ce725b41fca3bbdf872201865c8bca55131 100644
--- a/app/code/Magento/Wishlist/etc/frontend/page_types.xml
+++ b/app/code/Magento/Wishlist/etc/frontend/page_types.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../Core/etc/page_types.xsd">
+<page_types xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd">
     <type id="wishlist_index_index" label="Customer My Account My Wish List"/>
     <type id="wishlist_index_share" label="Customer My Account Wish List Sharing Form"/>
     <type id="wishlist_shared_index" label="Customer Shared Wish List View"/>
diff --git a/composer.json b/composer.json
index e29f9de8be6ff85c6eeebf84e5da449dedeba559..aad787f6282507de20e66d00875d130a09c659cc 100644
--- a/composer.json
+++ b/composer.json
@@ -79,7 +79,6 @@
         "magento/module-configurable-product": "self.version",
         "magento/module-contact": "self.version",
         "magento/module-cookie": "self.version",
-        "magento/module-core": "self.version",
         "magento/module-cron": "self.version",
         "magento/module-currency-symbol": "self.version",
         "magento/module-customer": "self.version",
diff --git a/composer.lock b/composer.lock
index 5337e32b2c094312a9be6fb56bafbc7632a931d5..097347dd21bfd76087c53e0b2424d5ee3b4a3d2d 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "933a1cf749db0c7e6d16e357c12cdaa8",
+    "hash": "8633d753763a17a13717a8380e3cb46b",
     "packages": [
         {
             "name": "composer/composer",
diff --git a/dev/shell/dependency.php b/dev/shell/dependency.php
index 29ee2cd8aa6981e3bd85f128cee1c85139c82611..bd6fd8de21af01a3fd46f45efb75b3d090e1a30a 100644
--- a/dev/shell/dependency.php
+++ b/dev/shell/dependency.php
@@ -19,8 +19,6 @@ const KEY_COMPONENT_NAME = 'name';
 const KEY_COMPONENT_DEPENDENCIES = 'dependencies';
 const KEY_COMPONENT_DEPENDENTS = 'dependents';
 
-const KEY_MAGENTO_CORE_MODULE = 'magento/module-core';
-
 $modules = [];
 $componentsByName = [];
 
@@ -256,8 +254,6 @@ function initialize()
         if (count($component[KEY_COMPONENT_MODULES]) == 1) {
             $component[KEY_COMPONENT_NAME] = $component[KEY_COMPONENT_MODULES][0];
             $modules[$component[KEY_COMPONENT_MODULES][0]][KEY_MODULE_COMPONENT] = $component[KEY_COMPONENT_NAME];
-        } elseif (in_array(KEY_MAGENTO_CORE_MODULE, $component[KEY_COMPONENT_MODULES])) {
-            $component[KEY_COMPONENT_NAME] = KEY_MAGENTO_CORE_MODULE;
         } else {
             $component[KEY_COMPONENT_NAME] = implode(':', $component[KEY_COMPONENT_MODULES]);
         }
diff --git a/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductLinkManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductLinkManagementTest.php
index 36cf0e0afaa83e7285e6a1d17f2c74185362ca5e..463f490480ce06c6e3016e5606971eb6ee1fe392 100644
--- a/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductLinkManagementTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductLinkManagementTest.php
@@ -91,11 +91,11 @@ class ProductLinkManagementTest extends \Magento\TestFramework\TestCase\WebapiAb
      */
     private function addChild($productSku, $optionId, $linkedProduct)
     {
-        $resourcePath = self::RESOURCE_PATH . '/:productSku/links/:optionId';
+        $resourcePath = self::RESOURCE_PATH . '/:sku/links/:optionId';
         $serviceInfo = [
             'rest' => [
                 'resourcePath' => str_replace(
-                    [':productSku', ':optionId'],
+                    [':sku', ':optionId'],
                     [$productSku, $optionId],
                     $resourcePath
                 ),
@@ -109,7 +109,7 @@ class ProductLinkManagementTest extends \Magento\TestFramework\TestCase\WebapiAb
         ];
         return $this->_webApiCall(
             $serviceInfo,
-            ['productSku' => $productSku, 'optionId' => $optionId, 'linkedProduct' => $linkedProduct]
+            ['sku' => $productSku, 'optionId' => $optionId, 'linkedProduct' => $linkedProduct]
         );
     }
 
@@ -125,7 +125,7 @@ class ProductLinkManagementTest extends \Magento\TestFramework\TestCase\WebapiAb
 
     protected function removeChild($productSku, $optionId, $childSku)
     {
-        $resourcePath = self::RESOURCE_PATH . '/%s/option/%s/child/%s';
+        $resourcePath = self::RESOURCE_PATH . '/%s/options/%s/children/%s';
         $serviceInfo = [
             'rest' => [
                 'resourcePath' => sprintf($resourcePath, $productSku, $optionId, $childSku),
@@ -137,7 +137,7 @@ class ProductLinkManagementTest extends \Magento\TestFramework\TestCase\WebapiAb
                 'operation' => self::SERVICE_NAME . 'removeChild',
             ],
         ];
-        $requestData = ['productSku' => $productSku, 'optionId' => $optionId, 'childSku' => $childSku];
+        $requestData = ['sku' => $productSku, 'optionId' => $optionId, 'childSku' => $childSku];
         return $this->_webApiCall($serviceInfo, $requestData);
     }
 
diff --git a/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductOptionRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductOptionRepositoryTest.php
index e18965c0753e60490561c6facf4aca2c6d8e615c..325e35ee8291041dd553575d39ed4523f71e5284 100644
--- a/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductOptionRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductOptionRepositoryTest.php
@@ -10,7 +10,7 @@ class ProductOptionRepositoryTest extends \Magento\TestFramework\TestCase\Webapi
 {
     const SERVICE_NAME = 'bundleProductOptionRepositoryV1';
     const SERVICE_VERSION = 'V1';
-    const RESOURCE_PATH = '/V1/bundle-products/:productSku/option';
+    const RESOURCE_PATH = '/V1/bundle-products/:sku/options';
 
     /**
      * @magentoApiDataFixture Magento/Bundle/_files/product.php
@@ -166,7 +166,7 @@ class ProductOptionRepositoryTest extends \Magento\TestFramework\TestCase\Webapi
     {
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/bundle-products/option/' . $optionId,
+                'resourcePath' => '/V1/bundle-products/options/' . $optionId,
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
             ],
             'soap' => [
@@ -190,7 +190,7 @@ class ProductOptionRepositoryTest extends \Magento\TestFramework\TestCase\Webapi
     {
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/bundle-products/option/add',
+                'resourcePath' => '/V1/bundle-products/options/add',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
@@ -211,7 +211,7 @@ class ProductOptionRepositoryTest extends \Magento\TestFramework\TestCase\Webapi
     {
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => str_replace(':productSku', $productSku, self::RESOURCE_PATH) . '/' . $optionId,
+                'resourcePath' => str_replace(':sku', $productSku, self::RESOURCE_PATH) . '/' . $optionId,
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_DELETE,
             ],
             'soap' => [
@@ -220,7 +220,7 @@ class ProductOptionRepositoryTest extends \Magento\TestFramework\TestCase\Webapi
                 'operation' => self::SERVICE_NAME . 'DeleteById',
             ],
         ];
-        return $this->_webApiCall($serviceInfo, ['productSku' => $productSku, 'optionId' => $optionId]);
+        return $this->_webApiCall($serviceInfo, ['sku' => $productSku, 'optionId' => $optionId]);
     }
 
     /**
@@ -231,7 +231,7 @@ class ProductOptionRepositoryTest extends \Magento\TestFramework\TestCase\Webapi
     {
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => str_replace(':productSku', $productSku, self::RESOURCE_PATH) . '/all',
+                'resourcePath' => str_replace(':sku', $productSku, self::RESOURCE_PATH) . '/all',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
             ],
             'soap' => [
@@ -240,7 +240,7 @@ class ProductOptionRepositoryTest extends \Magento\TestFramework\TestCase\Webapi
                 'operation' => self::SERVICE_NAME . 'GetList',
             ],
         ];
-        return $this->_webApiCall($serviceInfo, ['productSku' => $productSku]);
+        return $this->_webApiCall($serviceInfo, ['sku' => $productSku]);
     }
 
     /**
@@ -252,7 +252,7 @@ class ProductOptionRepositoryTest extends \Magento\TestFramework\TestCase\Webapi
     {
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => str_replace(':productSku', $productSku, self::RESOURCE_PATH) . '/' . $optionId,
+                'resourcePath' => str_replace(':sku', $productSku, self::RESOURCE_PATH) . '/' . $optionId,
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
             ],
             'soap' => [
@@ -261,6 +261,6 @@ class ProductOptionRepositoryTest extends \Magento\TestFramework\TestCase\Webapi
                 'operation' => self::SERVICE_NAME . 'Get',
             ],
         ];
-        return $this->_webApiCall($serviceInfo, ['productSku' => $productSku, 'optionId' => $optionId]);
+        return $this->_webApiCall($serviceInfo, ['sku' => $productSku, 'optionId' => $optionId]);
     }
 }
diff --git a/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductOptionTypeListTest.php b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductOptionTypeListTest.php
index 9e355b5aae83a17d9c48f5fffa42b3fda302d5e9..7fc41226c9bb09319afd87db1c280484fe0a795f 100644
--- a/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductOptionTypeListTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductOptionTypeListTest.php
@@ -10,7 +10,7 @@ class ProductOptionTypeListTest extends \Magento\TestFramework\TestCase\WebapiAb
 {
     const SERVICE_READ_NAME = 'bundleProductOptionTypeListV1';
     const SERVICE_VERSION = 'V1';
-    const RESOURCE_PATH = '/V1/bundle-products/option/types';
+    const RESOURCE_PATH = '/V1/bundle-products/options/types';
 
     public function testGetTypes()
     {
diff --git a/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductServiceTest.php b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductServiceTest.php
index 6c9d7c92c3cda782f13bbd5f8298d95cbbb26588..d995829a1ec31fdc1531af60a738ba8051e4fbd2 100644
--- a/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductServiceTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Bundle/Api/ProductServiceTest.php
@@ -61,6 +61,7 @@ class ProductServiceTest extends WebapiAbstract
      */
     public function testCreateBundle()
     {
+        $this->markTestSkipped('Processing of custom attributes has been changed in MAGETWO-34448.');
         $bundleProductOptions = [
             "attribute_code" => "bundle_product_options",
             "value" => [
@@ -138,7 +139,7 @@ class ProductServiceTest extends WebapiAbstract
         ];
 
         $response = (TESTS_WEB_API_ADAPTER == self::ADAPTER_SOAP) ?
-            $this->_webApiCall($serviceInfo, ['productSku' => $productSku]) : $this->_webApiCall($serviceInfo);
+            $this->_webApiCall($serviceInfo, ['sku' => $productSku]) : $this->_webApiCall($serviceInfo);
 
         return $response;
     }
diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/CategoryLinkRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/CategoryLinkRepositoryTest.php
index 0cc379dc881fbf4a064ed18227a34b5deed9e67c..84588ac82171ea29d17ba377b753d9265c5417db 100644
--- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/CategoryLinkRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/CategoryLinkRepositoryTest.php
@@ -121,7 +121,7 @@ class CategoryLinkRepositoryTest extends WebapiAbstract
         ];
         $result = $this->_webApiCall(
             $serviceInfo,
-            ['productSku' => 'simple', 'categoryId' => $this->categoryId]
+            ['sku' => 'simple', 'categoryId' => $this->categoryId]
         );
         $this->assertTrue($result);
         $this->assertFalse($this->isProductInCategory($this->categoryId, 333, 10));
diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductAttributeMediaGalleryManagementInterfaceTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductAttributeMediaGalleryManagementInterfaceTest.php
index 2fa1f86b55c5aeac1673d1416df96c856d59e5b5..86a5c051ae44c64a74e5d01b23c84c1ab82e00ea 100644
--- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductAttributeMediaGalleryManagementInterfaceTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductAttributeMediaGalleryManagementInterfaceTest.php
@@ -40,7 +40,7 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     {
         $this->createServiceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/products/simple/media',
+                'resourcePath' => '/V1/products/media',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
@@ -49,6 +49,7 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
                 'operation' => 'catalogProductAttributeMediaGalleryManagementV1Create',
             ],
         ];
+
         $this->updateServiceInfo = [
             'rest' => [
                 'resourcePath' => '/V1/products/simple/media',
@@ -103,23 +104,27 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     public function testCreate()
     {
         $requestData = [
-            'productSku' => 'simple',
-            'entry' => [
-                'id' => null,
-                'label' => 'Image Text',
-                'position' => 1,
-                'types' => ['image'],
-                'is_disabled' => false,
-            ],
-            'entryContent' => [
-                'entry_data' => base64_encode(file_get_contents($this->testImagePath)),
-                'mime_type' => 'image/jpeg',
-                'name' => 'test_image',
+            "sku" => 'simple',
+            "custom_attributes" => [
+                "media_gallery" => [
+                    'attribute_code' => 'media_gallery',
+                    'value' => [
+                        'id' => null,
+                        'label' => 'Image Text',
+                        'position' => 1,
+                        'types' => ['image'],
+                        'disabled' => false,
+                        'content' => [
+                            'entry_data' => base64_encode(file_get_contents($this->testImagePath)),
+                            'mime_type' => 'image/jpeg',
+                            'name' => 'test_image'
+                        ]
+                    ]
+                ],
             ],
-            // Store ID is not provided so the default one must be used
         ];
 
-        $actualResult = $this->_webApiCall($this->createServiceInfo, $requestData);
+        $actualResult = $this->_webApiCall($this->createServiceInfo, ['product' => $requestData]);
         $targetProduct = $this->getTargetSimpleProduct();
         $mediaGallery = $targetProduct->getData('media_gallery');
 
@@ -129,9 +134,6 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
         $this->assertEquals('Image Text', $updatedImage['label']);
         $this->assertEquals(1, $updatedImage['position']);
         $this->assertEquals(0, $updatedImage['disabled']);
-        $this->assertEquals('Image Text', $updatedImage['label_default']);
-        $this->assertEquals(1, $updatedImage['position_default']);
-        $this->assertEquals(0, $updatedImage['disabled_default']);
         $this->assertStringStartsWith('/t/e/test_image', $updatedImage['file']);
         $this->assertEquals($updatedImage['file'], $targetProduct->getData('image'));
     }
@@ -142,23 +144,28 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     public function testCreateWithNotDefaultStoreId()
     {
         $requestData = [
-            'productSku' => 'simple',
-            'entry' => [
-                'id' => null,
-                'label' => 'Image Text',
-                'position' => 1,
-                'types' => ['image'],
-                'is_disabled' => false,
-            ],
-            'entryContent' => [
-                'entry_data' => base64_encode(file_get_contents($this->testImagePath)),
-                'mime_type' => 'image/jpeg',
-                'name' => 'test_image',
-            ],
-            'storeId' => 1,
+            'sku' => 'simple',
+            'store_id' => 1,
+            "custom_attributes" => [
+                "media_gallery" => [
+                    'attribute_code' => 'media_gallery',
+                    'value' => [
+                        'id' => null,
+                        'label' => 'Image Text',
+                        'position' => 1,
+                        'types' => ['image'],
+                        'disabled' => false,
+                        'content' => [
+                            'entry_data' => base64_encode(file_get_contents($this->testImagePath)),
+                            'mime_type' => 'image/jpeg',
+                            'name' => 'test_image',
+                        ]
+                    ]
+                ],
+            ]
         ];
 
-        $actualResult = $this->_webApiCall($this->createServiceInfo, $requestData);
+        $actualResult = $this->_webApiCall($this->createServiceInfo, ['product' => $requestData]);
         $targetProduct = $this->getTargetSimpleProduct();
         $mediaGallery = $targetProduct->getData('media_gallery');
         $this->assertCount(1, $mediaGallery['images']);
@@ -182,13 +189,13 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     public function testUpdate()
     {
         $requestData = [
-            'productSku' => 'simple',
+            'sku' => 'simple',
             'entry' => [
                 'id' => $this->getTargetGalleryEntryId(),
                 'label' => 'Updated Image Text',
                 'position' => 10,
                 'types' => ['thumbnail'],
-                'is_disabled' => true,
+                'disabled' => true,
             ],
             // Store ID is not provided so the default one must be used
         ];
@@ -220,15 +227,15 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     public function testUpdateWithNotDefaultStoreId()
     {
         $requestData = [
-            'productSku' => 'simple',
+            'sku' => 'simple',
             'entry' => [
                 'id' => $this->getTargetGalleryEntryId(),
                 'label' => 'Updated Image Text',
                 'position' => 10,
                 'types' => ['thumbnail'],
-                'is_disabled' => true,
+                'disabled' => true,
             ],
-            'storeId' => 1,
+            'store_id' => 1,
         ];
 
         $this->updateServiceInfo['rest']['resourcePath'] = $this->updateServiceInfo['rest']['resourcePath']
@@ -262,7 +269,7 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
         $entryId = $this->getTargetGalleryEntryId();
         $this->deleteServiceInfo['rest']['resourcePath'] = "/V1/products/simple/media/{$entryId}";
         $requestData = [
-            'productSku' => 'simple',
+            'sku' => 'simple',
             'entryId' => $this->getTargetGalleryEntryId(),
         ];
 
@@ -280,23 +287,28 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     public function testCreateThrowsExceptionIfThereIsNoStoreWithProvidedStoreId()
     {
         $requestData = [
-            'productSku' => 'simple',
-            'entry' => [
-                'id' => null,
-                'label' => 'Image Text',
-                'position' => 1,
-                'types' => ['image'],
-                'is_disabled' => false,
-            ],
-            'storeId' => 9999, // target store view does not exist
-            'entryContent' => [
-                'entry_data' => base64_encode(file_get_contents($this->testImagePath)),
-                'mime_type' => 'image/jpeg',
-                'name' => 'test_image',
-            ],
+            'sku' => 'simple',
+            'store_id' => 9999, // target store view does not exist
+            "custom_attributes" => [
+                "media_gallery" => [
+                    'attribute_code' => 'media_gallery',
+                    'value' => [
+                        'id' => null,
+                        'label' => 'Image Text',
+                        'position' => 1,
+                        'types' => ['image'],
+                        'disabled' => false,
+                        'content' => [
+                            'entry_data' => base64_encode(file_get_contents($this->testImagePath)),
+                            'mime_type' => 'image/jpeg',
+                            'name' => 'test_image',
+                        ]
+                    ]
+                ],
+            ]
         ];
 
-        $this->_webApiCall($this->createServiceInfo, $requestData);
+        $this->_webApiCall($this->createServiceInfo, ['product' => $requestData]);
     }
 
     /**
@@ -308,23 +320,28 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     {
         $encodedContent = 'not_a_base64_encoded_content';
         $requestData = [
-            'productSku' => 'simple',
-            'entry' => [
-                'id' => null,
-                'label' => 'Image Text',
-                'position' => 1,
-                'is_disabled' => false,
-                'types' => ['image'],
-            ],
-            'entryContent' => [
-                'entry_data' => $encodedContent,
-                'mime_type' => 'image/jpeg',
-                'name' => 'test_image',
-            ],
-            'storeId' => 0,
+            'sku' => 'simple',
+            'store_id' => 0,
+            "custom_attributes" => [
+                "media_gallery" => [
+                    'attribute_code' => 'media_gallery',
+                    'value' => [
+                        'id' => null,
+                        'label' => 'Image Text',
+                        'position' => 1,
+                        'types' => ['image'],
+                        'disabled' => false,
+                        'content' => [
+                            'entry_data' => $encodedContent,
+                            'mime_type' => 'image/jpeg',
+                            'name' => 'test_image',
+                        ]
+                    ]
+                ],
+            ]
         ];
 
-        $this->_webApiCall($this->createServiceInfo, $requestData);
+        $this->_webApiCall($this->createServiceInfo, ['product' => $requestData]);
     }
 
     /**
@@ -336,23 +353,28 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     {
         $encodedContent = base64_encode('not_an_image');
         $requestData = [
-            'productSku' => 'simple',
-            'entry' => [
-                'id' => null,
-                'is_disabled' => false,
-                'label' => 'Image Text',
-                'position' => 1,
-                'types' => ['image'],
-            ],
-            'entryContent' => [
-                'entry_data' => $encodedContent,
-                'mime_type' => 'image/jpeg',
-                'name' => 'test_image',
-            ],
-            'storeId' => 0,
+            'sku' => 'simple',
+            'store_id' => 0,
+            "custom_attributes" => [
+                "media_gallery" => [
+                    'attribute_code' => 'media_gallery',
+                    'value' => [
+                        'id' => null,
+                        'label' => 'Image Text',
+                        'position' => 1,
+                        'types' => ['image'],
+                        'disabled' => false,
+                        'content' => [
+                            'entry_data' => $encodedContent,
+                            'mime_type' => 'image/jpeg',
+                            'name' => 'test_image',
+                        ]
+                    ]
+                ],
+            ]
         ];
 
-        $this->_webApiCall($this->createServiceInfo, $requestData);
+        $this->_webApiCall($this->createServiceInfo, ['product' => $requestData]);
     }
 
     /**
@@ -364,23 +386,28 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     {
         $encodedContent = base64_encode(file_get_contents($this->testImagePath));
         $requestData = [
-            'entry' => [
-                'id' => null,
-                'label' => 'Image Text',
-                'position' => 1,
-                'types' => ['image'],
-                'is_disabled' => false,
-            ],
-            'productSku' => 'simple',
-            'entryContent' => [
-                'entry_data' => $encodedContent,
-                'mime_type' => 'wrong_mime_type',
-                'name' => 'test_image',
-            ],
-            'storeId' => 0,
+            'sku' => 'simple',
+            'store_id' => 0,
+            "custom_attributes" => [
+                "media_gallery" => [
+                    'attribute_code' => 'media_gallery',
+                    'value' => [
+                        'id' => null,
+                        'label' => 'Image Text',
+                        'position' => 1,
+                        'types' => ['image'],
+                        'disabled' => false,
+                        'content' => [
+                            'entry_data' => $encodedContent,
+                            'mime_type' => 'wrong_mime_type',
+                            'name' => 'test_image',
+                        ]
+                    ]
+                ],
+            ]
         ];
 
-        $this->_webApiCall($this->createServiceInfo, $requestData);
+        $this->_webApiCall($this->createServiceInfo, ['product' => $requestData]);
     }
 
     /**
@@ -389,25 +416,31 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
      */
     public function testCreateThrowsExceptionIfTargetProductDoesNotExist()
     {
-        $this->createServiceInfo['rest']['resourcePath'] = '/V1/products/wrong_product_sku/media';
+        $this->createServiceInfo['rest']['resourcePath'] = '/V1/products/media';
+
         $requestData = [
-            'productSku' => 'wrong_product_sku',
-            'entry' => [
-                'id' => null,
-                'position' => 1,
-                'label' => 'Image Text',
-                'types' => ['image'],
-                'is_disabled' => false,
-            ],
-            'entryContent' => [
-                'entry_data' => base64_encode(file_get_contents($this->testImagePath)),
-                'mime_type' => 'image/jpeg',
-                'name' => 'test_image',
-            ],
-            'storeId' => 0,
+            'sku' => 'wrong_product_sku',
+            'store_id' => 0,
+            "custom_attributes" => [
+                "media_gallery" => [
+                    'attribute_code' => 'media_gallery',
+                    'value' => [
+                        'id' => null,
+                        'label' => 'Image Text',
+                        'position' => 1,
+                        'types' => ['image'],
+                        'disabled' => false,
+                        'content' => [
+                            'entry_data' => base64_encode(file_get_contents($this->testImagePath)),
+                            'mime_type' => 'image/jpeg',
+                            'name' => 'test_image',
+                        ]
+                    ]
+                ],
+            ]
         ];
 
-        $this->_webApiCall($this->createServiceInfo, $requestData);
+        $this->_webApiCall($this->createServiceInfo, ['product' => $requestData]);
     }
 
     /**
@@ -418,23 +451,28 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     public function testCreateThrowsExceptionIfProvidedImageNameContainsForbiddenCharacters()
     {
         $requestData = [
-            'productSku' => 'simple',
-            'entry' => [
-                'id' => null,
-                'label' => 'Image Text',
-                'position' => 1,
-                'types' => ['image'],
-                'is_disabled' => false,
-            ],
-            'entryContent' => [
-                'entry_data' => base64_encode(file_get_contents($this->testImagePath)),
-                'mime_type' => 'image/jpeg',
-                'name' => 'test/\\{}|:"<>', // Cannot contain \ / : * ? " < > |
-            ],
-            'storeId' => 0,
+            'sku' => 'wrong_product_sku',
+            'store_id' => 0,
+            "custom_attributes" => [
+                "media_gallery" => [
+                    'attribute_code' => 'media_gallery',
+                    'value' => [
+                        'id' => null,
+                        'label' => 'Image Text',
+                        'position' => 1,
+                        'types' => ['image'],
+                        'disabled' => false,
+                        'content' => [
+                            'entry_data' => base64_encode(file_get_contents($this->testImagePath)),
+                            'mime_type' => 'image/jpeg',
+                            'name' => 'test/\\{}|:"<>', // Cannot contain \ / : * ? " < > |
+                        ]
+                    ]
+                ],
+            ]
         ];
 
-        $this->_webApiCall($this->createServiceInfo, $requestData);
+        $this->_webApiCall($this->createServiceInfo, ['product' => $requestData]);
     }
 
     /**
@@ -445,15 +483,15 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     public function testUpdateIfThereIsNoStoreWithProvidedStoreId()
     {
         $requestData = [
-            'productSku' => 'simple',
+            'sku' => 'simple',
             'entry' => [
                 'id' => $this->getTargetGalleryEntryId(),
                 'label' => 'Updated Image Text',
                 'position' => 10,
                 'types' => ['thumbnail'],
-                'is_disabled' => true,
+                'disabled' => true,
             ],
-            'storeId' => 9999, // target store view does not exist
+            'store_id' => 9999, // target store view does not exist
         ];
 
         $this->updateServiceInfo['rest']['resourcePath'] = $this->updateServiceInfo['rest']['resourcePath']
@@ -471,15 +509,15 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
         $this->updateServiceInfo['rest']['resourcePath'] = '/V1/products/wrong_product_sku/media'
             . '/' . $this->getTargetGalleryEntryId();
         $requestData = [
-            'productSku' => 'wrong_product_sku',
+            'sku' => 'wrong_product_sku',
             'entry' => [
                 'id' => 9999,
                 'label' => 'Updated Image Text',
                 'position' => 1,
                 'types' => ['thumbnail'],
-                'is_disabled' => true,
+                'disabled' => true,
             ],
-            'storeId' => 0,
+            'store_id' => 0,
         ];
 
         $this->_webApiCall($this->updateServiceInfo, $requestData);
@@ -493,15 +531,15 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     public function testUpdateThrowsExceptionIfThereIsNoImageWithGivenId()
     {
         $requestData = [
-            'productSku' => 'simple',
+            'sku' => 'simple',
             'entry' => [
                 'id' => 9999,
                 'label' => 'Updated Image Text',
                 'position' => 1,
                 'types' => ['thumbnail'],
-                'is_disabled' => true,
+                'disabled' => true,
             ],
-            'storeId' => 0,
+            'store_id' => 0,
         ];
 
         $this->updateServiceInfo['rest']['resourcePath'] = $this->updateServiceInfo['rest']['resourcePath']
@@ -518,7 +556,7 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     {
         $this->deleteServiceInfo['rest']['resourcePath'] = '/V1/products/wrong_product_sku/media/9999';
         $requestData = [
-            'productSku' => 'wrong_product_sku',
+            'sku' => 'wrong_product_sku',
             'entryId' => 9999,
         ];
 
@@ -534,7 +572,7 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
     {
         $this->deleteServiceInfo['rest']['resourcePath'] = '/V1/products/simple/media/9999';
         $requestData = [
-            'productSku' => 'simple',
+            'sku' => 'simple',
             'entryId' => 9999,
         ];
 
@@ -558,7 +596,7 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
         $expected = [
             'label' => $image['label'],
             'position' => $image['position'],
-            'is_disabled' => (bool)$image['disabled'],
+            'disabled' => (bool)$image['disabled'],
             'file' => $image['file'],
             'types' => ['image', 'small_image', 'thumbnail'],
         ];
@@ -575,16 +613,16 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
             ],
         ];
         $requestData = [
-            'productSku' => $productSku,
+            'sku' => $productSku,
             'imageId' => $imageId,
         ];
         $data = $this->_webApiCall($serviceInfo, $requestData);
-        $actual = (array) $data;
+        $actual = (array)$data;
         $this->assertEquals($expected['label'], $actual['label']);
         $this->assertEquals($expected['position'], $actual['position']);
         $this->assertEquals($expected['file'], $actual['file']);
         $this->assertEquals($expected['types'], $actual['types']);
-        $this->assertEquals($expected['is_disabled'], (bool)$actual['is_disabled']);
+        $this->assertEquals($expected['disabled'], (bool)$actual['disabled']);
     }
 
     /**
@@ -606,7 +644,7 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
         ];
 
         $requestData = [
-            'productSku' => $productSku,
+            'sku' => $productSku,
         ];
         $imageList = $this->_webApiCall($serviceInfo, $requestData);
 
@@ -635,7 +673,7 @@ class ProductAttributeMediaGalleryManagementInterfaceTest extends \Magento\TestF
         ];
 
         $requestData = [
-            'productSku' => $productSku,
+            'sku' => $productSku,
         ];
         if (TESTS_WEB_API_ADAPTER == self::ADAPTER_SOAP) {
             $this->setExpectedException('SoapFault', 'Requested product doesn\'t exist');
diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductCustomOptionRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductCustomOptionRepositoryTest.php
index 39de9b517afe08198142a3807a6d8a12b16c8ae4..be4f82898a333e6dfda170dae9b46c1efbfb43d4 100644
--- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductCustomOptionRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductCustomOptionRepositoryTest.php
@@ -55,7 +55,7 @@ class ProductCustomOptionRepositoryTest extends WebapiAbstract
                 'operation' => self::SERVICE_NAME . 'DeleteByIdentifier',
             ],
         ];
-        $this->assertTrue($this->_webApiCall($serviceInfo, ['productSku' => $sku, 'optionId' => $optionId]));
+        $this->assertTrue($this->_webApiCall($serviceInfo, ['sku' => $sku, 'optionId' => $optionId]));
         /** @var  \Magento\Catalog\Model\Product $product */
         $product = $this->objectManager->create('Magento\Catalog\Model\Product');
         $product->load(1);
@@ -87,7 +87,7 @@ class ProductCustomOptionRepositoryTest extends WebapiAbstract
                 'operation' => self::SERVICE_NAME . 'Get',
             ],
         ];
-        $option = $this->_webApiCall($serviceInfo, ['productSku' => $productSku, 'optionId' => $optionId]);
+        $option = $this->_webApiCall($serviceInfo, ['sku' => $productSku, 'optionId' => $optionId]);
         unset($option['product_sku']);
         unset($option['option_id']);
         $excepted = include '_files/product_options.php';
@@ -113,7 +113,7 @@ class ProductCustomOptionRepositoryTest extends WebapiAbstract
                 'operation' => self::SERVICE_NAME . 'GetList',
             ],
         ];
-        $options = $this->_webApiCall($serviceInfo, ['productSku' => $productSku]);
+        $options = $this->_webApiCall($serviceInfo, ['sku' => $productSku]);
 
         /** Unset dynamic data */
         foreach ($options as $key => $value) {
diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductGroupPriceManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductGroupPriceManagementTest.php
index 882a95238d0b193d722299425f92d09d53c13d93..716a9ac564048a33fee8391647fc136da8f58d67 100644
--- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductGroupPriceManagementTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductGroupPriceManagementTest.php
@@ -32,7 +32,7 @@ class ProductGroupPriceManagementTest extends WebapiAbstract
                 'operation' => self::SERVICE_NAME . 'GetList',
             ],
         ];
-        $groupPriceList = $this->_webApiCall($serviceInfo, ['productSku' => $productSku]);
+        $groupPriceList = $this->_webApiCall($serviceInfo, ['sku' => $productSku]);
         $this->assertCount(2, $groupPriceList);
         $this->assertEquals(9, $groupPriceList[0]['value']);
         $this->assertEquals(7, $groupPriceList[1]['value']);
@@ -56,7 +56,7 @@ class ProductGroupPriceManagementTest extends WebapiAbstract
                 'operation' => self::SERVICE_NAME . 'Remove',
             ],
         ];
-        $requestData = ['productSku' => $productSku, 'customerGroupId' => $customerGroupId];
+        $requestData = ['sku' => $productSku, 'customerGroupId' => $customerGroupId];
         $this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
     }
 
@@ -77,7 +77,7 @@ class ProductGroupPriceManagementTest extends WebapiAbstract
                 'operation' => self::SERVICE_NAME . 'Add',
             ],
         ];
-        $this->_webApiCall($serviceInfo, ['productSku' => $productSku, 'customerGroupId' => 1, 'price' => 10]);
+        $this->_webApiCall($serviceInfo, ['sku' => $productSku, 'customerGroupId' => 1, 'price' => 10]);
         $objectManager = \Magento\TestFramework\ObjectManager::getInstance();
         /** @var \Magento\Catalog\Api\ProductGroupPriceManagementInterface $service */
         $service = $objectManager->get('Magento\Catalog\Api\ProductGroupPriceManagementInterface');
@@ -106,7 +106,7 @@ class ProductGroupPriceManagementTest extends WebapiAbstract
             ],
 
         ];
-        $this->_webApiCall($serviceInfo, ['productSku' => $productSku, 'customerGroupId' => 1, 'price' => 10]);
+        $this->_webApiCall($serviceInfo, ['sku' => $productSku, 'customerGroupId' => 1, 'price' => 10]);
         $objectManager = \Magento\TestFramework\ObjectManager::getInstance();
         /** @var \Magento\Catalog\Api\ProductGroupPriceManagementInterface $service */
         $service = $objectManager->get('Magento\Catalog\Api\ProductGroupPriceManagementInterface');
diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductLinkManagementInterfaceTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductLinkManagementInterfaceTest.php
index 0209428a759950a9e38c7f1339cec95801f2ee7d..5592363a2a8e2d9ed3e1e82b91c6e902c8aab5a2 100644
--- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductLinkManagementInterfaceTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductLinkManagementInterfaceTest.php
@@ -76,7 +76,7 @@ class ProductLinkManagementInterfaceTest extends WebapiAbstract
             ],
         ];
 
-        $actual = $this->_webApiCall($serviceInfo, ['productSku' => $productSku, 'type' => $linkType]);
+        $actual = $this->_webApiCall($serviceInfo, ['sku' => $productSku, 'type' => $linkType]);
 
         $this->assertEquals('simple', $actual[0]['linked_product_type']);
         $this->assertEquals('simple', $actual[0]['linked_product_sku']);
@@ -112,7 +112,7 @@ class ProductLinkManagementInterfaceTest extends WebapiAbstract
         ];
 
         $arguments = [
-            'productSku' => $productSku,
+            'sku' => $productSku,
             'items' => [$linkData],
             'type' => $linkType,
         ];
diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductLinkRepositoryInterfaceTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductLinkRepositoryInterfaceTest.php
index 1f89a35c6c26a114b64148c8813869948cc7ea3d..30d9d54a86d48363882113e4ee024ec5e6dff2d9 100644
--- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductLinkRepositoryInterfaceTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductLinkRepositoryInterfaceTest.php
@@ -47,7 +47,7 @@ class ProductLinkRepositoryInterfaceTest extends WebapiAbstract
                 ],
             ],
             [
-                'productSku' => $productSku,
+                'sku' => $productSku,
                 'type' => $linkType,
                 'linkedProductSku' => $linkedSku
             ]
diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryInterfaceTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryInterfaceTest.php
index 931a8d2886447ed33379d6f21b548ec97cb5d9db..615675efa90a488421e7d4a4674d51b9355527f5 100644
--- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryInterfaceTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryInterfaceTest.php
@@ -48,7 +48,7 @@ class ProductRepositoryInterfaceTest extends WebapiAbstract
             ],
         ];
 
-        $response = $this->_webApiCall($serviceInfo, ['productSku' => $productData[ProductInterface::SKU]]);
+        $response = $this->_webApiCall($serviceInfo, ['sku' => $productData[ProductInterface::SKU]]);
         foreach ([ProductInterface::SKU, ProductInterface::NAME, ProductInterface::PRICE] as $key) {
             $this->assertEquals($productData[$key], $response[$key]);
         }
@@ -72,7 +72,7 @@ class ProductRepositoryInterfaceTest extends WebapiAbstract
         $expectedMessage = 'Requested product doesn\'t exist';
 
         try {
-            $this->_webApiCall($serviceInfo, ['productSku' => $invalidSku]);
+            $this->_webApiCall($serviceInfo, ['sku' => $invalidSku]);
             $this->fail("Expected throwing exception");
         } catch (\SoapFault $e) {
             $this->assertContains(
@@ -274,6 +274,6 @@ class ProductRepositoryInterfaceTest extends WebapiAbstract
         ];
 
         return (TESTS_WEB_API_ADAPTER == self::ADAPTER_SOAP) ?
-            $this->_webApiCall($serviceInfo, ['productSku' => $sku]) : $this->_webApiCall($serviceInfo);
+            $this->_webApiCall($serviceInfo, ['sku' => $sku]) : $this->_webApiCall($serviceInfo);
     }
 }
diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryMultiStoreTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryMultiStoreTest.php
index e31a51c9313abaff81f0ec9a2d8400aba77bddcc..b2939d3116b93cde0d5453a1eeb0ece5401a6a67 100644
--- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryMultiStoreTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductRepositoryMultiStoreTest.php
@@ -34,7 +34,7 @@ class ProductRepositoryMultiStoreTest extends WebapiAbstract
 
     /**
      * Create another store one time for testSearch
-     * @magentoApiDataFixture Magento/Core/_files/store.php
+     * @magentoApiDataFixture Magento/Store/_files/core_fixturestore.php
      */
     public function testCreateAnotherStore()
     {
@@ -73,7 +73,7 @@ class ProductRepositoryMultiStoreTest extends WebapiAbstract
             ]
         ];
 
-        $requestData = ['id' => $sku, 'productSku' => $sku];
+        $requestData = ['id' => $sku, 'sku' => $sku];
         $defaultStoreResponse = $this->_webApiCall($serviceInfo, $requestData);
         $nameInDefaultStore = 'Simple Product';
         $this->assertEquals(
diff --git a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductTierPriceManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductTierPriceManagementTest.php
index 7fca11a150a627ae7f2d52fc09f5c9f0e48be37a..31e686b2e13dbd0edb704c85d4e772c9c7802cac 100644
--- a/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductTierPriceManagementTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Catalog/Api/ProductTierPriceManagementTest.php
@@ -38,7 +38,7 @@ class ProductTierPriceManagementTest extends WebapiAbstract
 
         $groupPriceList = $this->_webApiCall(
             $serviceInfo,
-            ['productSku' => $productSku, 'customerGroupId' => $customerGroupId]
+            ['sku' => $productSku, 'customerGroupId' => $customerGroupId]
         );
 
         $this->assertCount($count, $groupPriceList);
@@ -78,7 +78,7 @@ class ProductTierPriceManagementTest extends WebapiAbstract
                 'operation' => self::SERVICE_NAME . 'Remove',
             ],
         ];
-        $requestData = ['productSku' => $productSku, 'customerGroupId' => $customerGroupId, 'qty' => $qty];
+        $requestData = ['sku' => $productSku, 'customerGroupId' => $customerGroupId, 'qty' => $qty];
         $this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
     }
 
@@ -114,7 +114,7 @@ class ProductTierPriceManagementTest extends WebapiAbstract
         ];
 
         $requestData = [
-            'productSku' => $productSku,
+            'sku' => $productSku,
             'customerGroupId' => $customerGroupId,
             'qty' => $qty,
             'price' => $price,
@@ -152,7 +152,7 @@ class ProductTierPriceManagementTest extends WebapiAbstract
             ],
         ];
         $requestData = [
-            'productSku' => $productSku,
+            'sku' => $productSku,
             'customerGroupId' => $customerGroupId,
             'qty' => $qty,
             'price' => $price,
@@ -190,7 +190,7 @@ class ProductTierPriceManagementTest extends WebapiAbstract
             ],
         ];
         $requestData = [
-            'productSku' => $productSku,
+            'sku' => $productSku,
             'customerGroupId' => $customerGroupId,
             'qty' => $qty,
             'price' => $price,
diff --git a/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/LowStockItemsTest.php b/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/LowStockItemsTest.php
index 308fc41b83120d62e4cbc942b7363bebd46b6f2f..27212e5419f214927c1530baea17946f810ee54e 100644
--- a/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/LowStockItemsTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/LowStockItemsTest.php
@@ -13,7 +13,7 @@ use Magento\TestFramework\TestCase\WebapiAbstract;
 class LowStockItemsTest extends WebapiAbstract
 {
     const SERVICE_VERSION = 'V1';
-    const RESOURCE_PATH = '/V1/stockItem/lowStock/';
+    const RESOURCE_PATH = '/V1/stockItems/lowStock/';
 
     /**
      * @param float $qty
diff --git a/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/StockItemTest.php b/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/StockItemTest.php
index 99f1f84fae540d5ed828f7e9f1cd5495b319aee8..0513f5e68abfdbe603bb5972604abb8d21453165 100644
--- a/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/StockItemTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/StockItemTest.php
@@ -29,7 +29,7 @@ class StockItemTest extends WebapiAbstract
     /**
      * Resource path
      */
-    const RESOURCE_PATH = '/V1/stockItem';
+    const RESOURCE_PATH = '/V1/stockItems';
 
     /** @var \Magento\Catalog\Model\Resource\Product\Collection */
     protected $productCollection;
diff --git a/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/StockStatusTest.php b/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/StockStatusTest.php
index a751be1959c467ca45d503b4ec489d7dcde106bd..19579fe3325b58468582789c7654974c0b01ba3e 100644
--- a/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/StockStatusTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/CatalogInventory/Api/StockStatusTest.php
@@ -14,7 +14,7 @@ use Magento\TestFramework\TestCase\WebapiAbstract;
 class StockStatusTest extends WebapiAbstract
 {
     const SERVICE_VERSION = 'V1';
-    const RESOURCE_PATH = '/V1/stockStatus';
+    const RESOURCE_PATH = '/V1/stockStatuses';
 
     /**
      * @magentoApiDataFixture Magento/Catalog/_files/product_simple.php
diff --git a/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/LinkManagementTest.php b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/LinkManagementTest.php
index dc65d9ff0833cbaa152805997163794f657bcd54..dcb84bd552027feece69841952457ad583076c67 100644
--- a/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/LinkManagementTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/LinkManagementTest.php
@@ -61,7 +61,7 @@ class LinkManagementTest extends \Magento\TestFramework\TestCase\WebapiAbstract
                 'operation' => self::SERVICE_NAME . 'AddChild'
             ]
         ];
-        $res = $this->_webApiCall($serviceInfo, ['productSku' => $productSku, 'childSku' => $childSku]);
+        $res = $this->_webApiCall($serviceInfo, ['sku' => $productSku, 'childSku' => $childSku]);
         $this->assertTrue($res);
     }
 
@@ -77,7 +77,7 @@ class LinkManagementTest extends \Magento\TestFramework\TestCase\WebapiAbstract
 
     protected function removeChild($productSku, $childSku)
     {
-        $resourcePath = self::RESOURCE_PATH . '/%s/child/%s';
+        $resourcePath = self::RESOURCE_PATH . '/%s/children/%s';
         $serviceInfo = [
             'rest' => [
                 'resourcePath' => sprintf($resourcePath, $productSku, $childSku),
@@ -89,7 +89,7 @@ class LinkManagementTest extends \Magento\TestFramework\TestCase\WebapiAbstract
                 'operation' => self::SERVICE_NAME . 'RemoveChild'
             ]
         ];
-        $requestData = ['productSku' => $productSku, 'childSku' => $childSku];
+        $requestData = ['sku' => $productSku, 'childSku' => $childSku];
         return $this->_webApiCall($serviceInfo, $requestData);
     }
 
@@ -110,6 +110,6 @@ class LinkManagementTest extends \Magento\TestFramework\TestCase\WebapiAbstract
                 'operation' => self::SERVICE_NAME . 'GetChildren'
             ]
         ];
-        return $this->_webApiCall($serviceInfo, ['productSku' => $productSku]);
+        return $this->_webApiCall($serviceInfo, ['sku' => $productSku]);
     }
 }
diff --git a/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OptionRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OptionRepositoryTest.php
index 9c37f1453eaf044172e8dc1ecbb23c35ed7bd246..a14d5e9bd009e50963660a04d82769531ced3c1b 100644
--- a/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OptionRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OptionRepositoryTest.php
@@ -166,7 +166,7 @@ class OptionRepositoryTest extends \Magento\TestFramework\TestCase\WebapiAbstrac
             ],
         ];
         /** @var int $result */
-        $result = $this->_webApiCall($serviceInfo, ['productSku' => $productSku, 'option' => $option]);
+        $result = $this->_webApiCall($serviceInfo, ['sku' => $productSku, 'option' => $option]);
         $this->assertGreaterThan(0, $result);
     }
 
@@ -196,7 +196,7 @@ class OptionRepositoryTest extends \Magento\TestFramework\TestCase\WebapiAbstrac
 
         $requestBody = ['option' => $option];
         if (TESTS_WEB_API_ADAPTER == self::ADAPTER_SOAP) {
-            $requestBody['productSku'] = $productSku;
+            $requestBody['sku'] = $productSku;
             $requestBody['option']['id'] = $optionId;
         }
 
@@ -223,7 +223,7 @@ class OptionRepositoryTest extends \Magento\TestFramework\TestCase\WebapiAbstrac
                 'operation' => self::SERVICE_NAME . 'GetList'
             ]
         ];
-        return $this->_webApiCall($serviceInfo, ['productSku' => $productSku]);
+        return $this->_webApiCall($serviceInfo, ['sku' => $productSku]);
     }
 
     /**
@@ -244,7 +244,7 @@ class OptionRepositoryTest extends \Magento\TestFramework\TestCase\WebapiAbstrac
                 'operation' => self::SERVICE_NAME . 'DeleteById'
             ]
         ];
-        return $this->_webApiCall($serviceInfo, ['productSku' => $productSku, 'optionId' => $optionId]);
+        return $this->_webApiCall($serviceInfo, ['sku' => $productSku, 'id' => $optionId]);
     }
 
     /**
@@ -265,7 +265,7 @@ class OptionRepositoryTest extends \Magento\TestFramework\TestCase\WebapiAbstrac
                 'operation'      => self::SERVICE_NAME . 'Get'
             ]
         ];
-        return $this->_webApiCall($serviceInfo, ['productSku' => $productSku, 'optionId' => $optionId]);
+        return $this->_webApiCall($serviceInfo, ['sku' => $productSku, 'id' => $optionId]);
     }
 
     /**
@@ -285,6 +285,6 @@ class OptionRepositoryTest extends \Magento\TestFramework\TestCase\WebapiAbstrac
                 'operation'      => self::SERVICE_NAME . 'GetList'
             ]
         ];
-        return $this->_webApiCall($serviceInfo, ['productSku' => $productSku]);
+        return $this->_webApiCall($serviceInfo, ['sku' => $productSku]);
     }
 }
diff --git a/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OptionTypesListTest.php b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OptionTypesListTest.php
index 6998a2266e52fec98c4a9971bac45f40f408e237..a96d5ca79a5cb22ccf148210a39a37f0b545ba81 100644
--- a/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OptionTypesListTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/ConfigurableProduct/Api/OptionTypesListTest.php
@@ -10,7 +10,7 @@ class OptionTypesListTest extends \Magento\TestFramework\TestCase\WebapiAbstract
 {
     const SERVICE_READ_NAME = 'configurableProductOptionTypesListV1';
     const SERVICE_VERSION = 'V1';
-    const RESOURCE_PATH = '/V1/configurable-products/:productSku/options/';
+    const RESOURCE_PATH = '/V1/configurable-products/:sku/options/';
 
     public function testGetTypes()
     {
@@ -26,7 +26,7 @@ class OptionTypesListTest extends \Magento\TestFramework\TestCase\WebapiAbstract
     {
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => str_replace(':productSku/', '', self::RESOURCE_PATH) . 'types',
+                'resourcePath' => str_replace(':sku/', '', self::RESOURCE_PATH) . 'types',
                 'httpMethod'   => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Downloadable/Api/LinkRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Downloadable/Api/LinkRepositoryTest.php
index 78bb435b7af4d2c3a2ac98e7e7a8fde51a831566..56434acaf7b0135bb0d9bedc154a8b14b67a7a14 100644
--- a/dev/tests/api-functional/testsuite/Magento/Downloadable/Api/LinkRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Downloadable/Api/LinkRepositoryTest.php
@@ -113,7 +113,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => true,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Title',
                 'sort_order' => 1,
@@ -159,7 +159,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Store View Title',
                 'sort_order' => 1,
@@ -197,7 +197,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Link with URL resources',
                 'sort_order' => 1,
@@ -234,7 +234,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Link with URL resources',
                 'sort_order' => 1,
@@ -256,7 +256,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Link Title',
                 'sort_order' => 1,
@@ -285,7 +285,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Link Title',
                 'sort_order' => 1,
@@ -312,7 +312,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Title',
                 'sort_order' => 15,
@@ -339,7 +339,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Link Title',
                 'sort_order' => 1,
@@ -368,7 +368,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Link Title',
                 'sort_order' => 1,
@@ -392,7 +392,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Link Title',
                 'sort_order' => 1,
@@ -419,7 +419,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Link Title',
                 'sort_order' => 1,
@@ -457,7 +457,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Link Title',
                 'sort_order' => $sortOrder,
@@ -493,7 +493,7 @@ class LinkRepositoryTest extends WebapiAbstract
     {
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Link Title',
                 'sort_order' => 0,
@@ -529,7 +529,7 @@ class LinkRepositoryTest extends WebapiAbstract
         $this->createServiceInfo['rest']['resourcePath'] = '/V1/products/simple/downloadable-links';
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'simple',
+            'sku' => 'simple',
             'linkContent' => [
                 'title' => 'Link Title',
                 'sort_order' => 50,
@@ -554,7 +554,7 @@ class LinkRepositoryTest extends WebapiAbstract
         $this->createServiceInfo['rest']['resourcePath'] = '/V1/products/wrong-sku/downloadable-links';
         $requestData = [
             'isGlobalScopeContent' => false,
-            'productSku' => 'wrong-sku',
+            'sku' => 'wrong-sku',
             'linkContent' => [
                 'title' => 'Link Title',
                 'sort_order' => 15,
@@ -581,7 +581,7 @@ class LinkRepositoryTest extends WebapiAbstract
         $requestData = [
             'isGlobalScopeContent' => false,
             'linkId' => $linkId,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Updated Title',
                 'sort_order' => 2,
@@ -612,7 +612,7 @@ class LinkRepositoryTest extends WebapiAbstract
         $requestData = [
             'isGlobalScopeContent' => true,
             'linkId' => $linkId,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Updated Title',
                 'sort_order' => 2,
@@ -646,7 +646,7 @@ class LinkRepositoryTest extends WebapiAbstract
         $requestData = [
             'isGlobalScopeContent' => true,
             'linkId' => 1,
-            'productSku' => 'wrong-sku',
+            'sku' => 'wrong-sku',
             'linkContent' => [
                 'title' => 'Updated Title',
                 'sort_order' => 2,
@@ -671,7 +671,7 @@ class LinkRepositoryTest extends WebapiAbstract
         $requestData = [
             'isGlobalScopeContent' => true,
             'linkId' => 9999,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Title',
                 'sort_order' => 2,
@@ -698,7 +698,7 @@ class LinkRepositoryTest extends WebapiAbstract
         $requestData = [
             'isGlobalScopeContent' => false,
             'linkId' => $linkId,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Updated Link Title',
                 'sort_order' => 2,
@@ -725,7 +725,7 @@ class LinkRepositoryTest extends WebapiAbstract
         $requestData = [
             'isGlobalScopeContent' => false,
             'linkId' => $linkId,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Updated Link Title',
                 'sort_order' => $sortOrder,
@@ -751,7 +751,7 @@ class LinkRepositoryTest extends WebapiAbstract
         $requestData = [
             'isGlobalScopeContent' => false,
             'linkId' => $linkId,
-            'productSku' => 'downloadable-product',
+            'sku' => 'downloadable-product',
             'linkContent' => [
                 'title' => 'Updated Link Title',
                 'sort_order' => 200,
@@ -813,7 +813,7 @@ class LinkRepositoryTest extends WebapiAbstract
             ],
         ];
 
-        $requestData = ['productSku' => $sku];
+        $requestData = ['sku' => $sku];
 
         $expectedMessage = 'Requested product doesn\'t exist';
         try {
@@ -845,7 +845,7 @@ class LinkRepositoryTest extends WebapiAbstract
             ],
         ];
 
-        $requestData = ['productSku' => $sku];
+        $requestData = ['sku' => $sku];
 
         $list = $this->_webApiCall($serviceInfo, $requestData);
         $this->assertEmpty($list);
@@ -871,7 +871,7 @@ class LinkRepositoryTest extends WebapiAbstract
             ],
         ];
 
-        $requestData = ['productSku' => $sku];
+        $requestData = ['sku' => $sku];
 
         $list = $this->_webApiCall($serviceInfo, $requestData);
 
diff --git a/dev/tests/api-functional/testsuite/Magento/Eav/Api/AttributeSetRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Eav/Api/AttributeSetRepositoryTest.php
index 435333d1b1ff6a6668d12123126bf18119ada6fb..c4876bd7f9f14bb5627fcb6bffb6b2e5edbc6f93 100644
--- a/dev/tests/api-functional/testsuite/Magento/Eav/Api/AttributeSetRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Eav/Api/AttributeSetRepositoryTest.php
@@ -73,7 +73,7 @@ class AttributeSetRepositoryTest extends WebapiAbstract
         $attributeSet = $this->getAttributeSetByName($attributeSetName);
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/eav/attribute-sets',
+                'resourcePath' => '/V1/eav/attribute-sets/' . $attributeSet->getId(),
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/GroupedProduct/Api/ProductLinkManagementTest.php b/dev/tests/api-functional/testsuite/Magento/GroupedProduct/Api/ProductLinkManagementTest.php
index 90cec13232000d8b00de2e09c49bc0e1027a5367..6215e0c519275efa260a5d8ca3824063f75af34d 100644
--- a/dev/tests/api-functional/testsuite/Magento/GroupedProduct/Api/ProductLinkManagementTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/GroupedProduct/Api/ProductLinkManagementTest.php
@@ -32,7 +32,7 @@ class ProductLinkManagementTest extends \Magento\TestFramework\TestCase\WebapiAb
             ],
         ];
 
-        $actual = $this->_webApiCall($serviceInfo, ['productSku' => $productSku, 'type' => $linkType]);
+        $actual = $this->_webApiCall($serviceInfo, ['sku' => $productSku, 'type' => $linkType]);
 
         $expected = [
             [
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartRepositoryTest.php
index e411cc7903156b779ef651636eeebb0ca60f5b80..add493db96a143faf32a0d26e183122067aaa9e6 100644
--- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartRepositoryTest.php
@@ -153,18 +153,6 @@ class CartRepositoryTest extends WebapiAbstract
     {
         $cart = $this->getCart('test01');
 
-        $serviceInfo = [
-            'rest' => [
-                'resourcePath' => '/V1/carts',
-                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
-            ],
-            'soap' => [
-                'service' => 'quoteCartRepositoryV1',
-                'serviceVersion' => 'V1',
-                'operation' => 'quoteCartRepositoryV1GetList',
-            ],
-        ];
-
         // The following two filters are used as alternatives. The target cart does not match the first one.
         $grandTotalFilter = $this->filterBuilder->setField('grand_total')
             ->setConditionType('gteq')
@@ -195,6 +183,18 @@ class CartRepositoryTest extends WebapiAbstract
         $searchCriteria = $this->searchBuilder->create()->__toArray();
 
         $requestData = ['searchCriteria' => $searchCriteria];
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => '/V1/carts' . '?' . http_build_query($requestData),
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+            'soap' => [
+                'service' => 'quoteCartRepositoryV1',
+                'serviceVersion' => 'V1',
+                'operation' => 'quoteCartRepositoryV1GetList',
+            ],
+        ];
+
         $searchResult = $this->_webApiCall($serviceInfo, $requestData);
         $this->assertArrayHasKey('total_count', $searchResult);
         $this->assertEquals(1, $searchResult['total_count']);
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/CreditmemoAddCommentTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/CreditmemoAddCommentTest.php
index 86e5df82c426fb8954f32551900c45aed58f6b8e..909d1bf694e8fa61e9c4bf0b04b6108de30fffb0 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/CreditmemoAddCommentTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/CreditmemoAddCommentTest.php
@@ -66,7 +66,7 @@ class CreditmemoAddCommentTest extends WebapiAbstract
         $requestData = ['entity' => $commentData];
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/creditmemo/comment',
+                'resourcePath' => '/V1/creditmemo/' . $creditmemo->getId() . '/comments',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceAddCommentTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceAddCommentTest.php
index a6ad6436a54d3dd00bb3bfb3c2d16464716a85cc..fb69f3e2bf944ae199ce963c484f6638b87457be 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceAddCommentTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceAddCommentTest.php
@@ -47,7 +47,7 @@ class InvoiceAddCommentTest extends WebapiAbstract
         $requestData = ['entity' => $commentData];
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/invoice/comment',
+                'resourcePath' => '/V1/invoices/comments',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceCommentsListTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceCommentsListTest.php
index 22f4c333de797034bf809714300a744abfaca2c2..d03981ed76af47d0c93b36984e1bd44acae0a1a4 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceCommentsListTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceCommentsListTest.php
@@ -34,7 +34,7 @@ class InvoiceCommentsListTest extends WebapiAbstract
 
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/invoice/' . $invoice->getId() . '/comments',
+                'resourcePath' => '/V1/invoices/' . $invoice->getId() . '/comments',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceCreateTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceCreateTest.php
index 10c54d043e878d1ccbdddd0d877579266c6deb32..3237b600d6194811759404a099936f0d4b9e1f87 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceCreateTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceCreateTest.php
@@ -12,7 +12,7 @@ use Magento\TestFramework\TestCase\WebapiAbstract;
  */
 class InvoiceCreateTest extends WebapiAbstract
 {
-    const RESOURCE_PATH = '/V1/invoice';
+    const RESOURCE_PATH = '/V1/invoices';
 
     const SERVICE_READ_NAME = 'salesInvoiceRepositoryV1';
 
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceEmailTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceEmailTest.php
index 572becdd7c535fd6215a29faa109bf871a74fe8e..66ae7db9a299d598a630f249f377cce6d4d00472 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceEmailTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceEmailTest.php
@@ -26,7 +26,7 @@ class InvoiceEmailTest extends WebapiAbstract
         $invoice = $invoiceCollection->getFirstItem();
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/invoice/' . $invoice->getId() . '/email',
+                'resourcePath' => '/V1/invoices/' . $invoice->getId() . '/emails',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceGetTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceGetTest.php
index da6c9291912d6c5fc839f27386551d32243ecb99..9e7758a570e5c6098ff156809b6341d6e58ce7d5 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceGetTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/InvoiceGetTest.php
@@ -12,7 +12,7 @@ use Magento\TestFramework\TestCase\WebapiAbstract;
  */
 class InvoiceGetTest extends WebapiAbstract
 {
-    const RESOURCE_PATH = '/V1/invoice';
+    const RESOURCE_PATH = '/V1/invoices';
 
     const SERVICE_READ_NAME = 'salesInvoiceRepositoryV1';
 
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderAddressUpdateTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderAddressUpdateTest.php
index 40a5fb8975ed64dd2df16026dc7cc4ed8c483ce2..337a532d256f520afa592be6a0b56df861f37e08 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderAddressUpdateTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderAddressUpdateTest.php
@@ -59,7 +59,7 @@ class OrderAddressUpdateTest extends WebapiAbstract
 
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/order/' . $order->getId(),
+                'resourcePath' => '/V1/orders/' . $order->getId(),
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCancelTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCancelTest.php
index e9b2afe36752e38637cab12fe107f39866b5c739..cd7cce323670340ab67a36af31dc722f5a1f4df9 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCancelTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCancelTest.php
@@ -23,7 +23,7 @@ class OrderCancelTest extends WebapiAbstract
         $order = $objectManager->get('Magento\Sales\Model\Order')->loadByIncrementId('100000001');
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/order/' . $order->getId() . '/cancel',
+                'resourcePath' => '/V1/orders/' . $order->getId() . '/cancel',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCommentsListTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCommentsListTest.php
index 4117b042e1fa72177eb1b1a6d3f8632785039260..50f697f2039bf680fd8150d2d8764ceb1b7a9a57 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCommentsListTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCommentsListTest.php
@@ -28,7 +28,7 @@ class OrderCommentsListTest extends WebapiAbstract
 
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/order/' . $order->getId() . '/comments',
+                'resourcePath' => '/V1/orders/' . $order->getId() . '/comments',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCreateTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCreateTest.php
index f5b38cf18ae14725f0946c4e44856845f9c535d3..9671029364b2c5fcfb594ddd02cf74d9aaf20e1b 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCreateTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderCreateTest.php
@@ -10,7 +10,7 @@ use Magento\TestFramework\TestCase\WebapiAbstract;
 
 class OrderCreateTest extends WebapiAbstract
 {
-    const RESOURCE_PATH = '/V1/order';
+    const RESOURCE_PATH = '/V1/orders';
 
     const SERVICE_READ_NAME = 'salesOrderRepositoryV1';
 
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderEmailTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderEmailTest.php
index ed9722292bd9d10c6fb41f26ccec571cbaf1a8bb..6044e173013285687a27546625d9b1878a667fea 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderEmailTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderEmailTest.php
@@ -24,7 +24,7 @@ class OrderEmailTest extends WebapiAbstract
         $order->loadByIncrementId('100000001');
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/order/' . $order->getId() . '/email',
+                'resourcePath' => '/V1/orders/' . $order->getId() . '/emails',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderGetStatusTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderGetStatusTest.php
index 94f18257d8e443d4030dd2c6887c47cb088f1bd3..a45e17ccc48585457cf6b3e47748bd52f45c2794 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderGetStatusTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderGetStatusTest.php
@@ -13,7 +13,7 @@ use Magento\TestFramework\TestCase\WebapiAbstract;
  */
 class OrderGetStatusTest extends WebapiAbstract
 {
-    const RESOURCE_PATH = '/V1/order/%d/status';
+    const RESOURCE_PATH = '/V1/orders/%d/statuses';
 
     const SERVICE_READ_NAME = 'salesOrderManagementV1';
 
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderGetTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderGetTest.php
index d590af9442b7f1f78fc5c2f617b6ffe2330f9a7d..46c3c7ca1b96392611dc62081e43bfb385eb478a 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderGetTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderGetTest.php
@@ -9,7 +9,7 @@ use Magento\TestFramework\TestCase\WebapiAbstract;
 
 class OrderGetTest extends WebapiAbstract
 {
-    const RESOURCE_PATH = '/V1/order';
+    const RESOURCE_PATH = '/V1/orders';
 
     const SERVICE_READ_NAME = 'salesOrderRepositoryV1';
 
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderHoldTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderHoldTest.php
index 72d05d8f6c79106b0ba33c48b99fb8bf0658646c..bd693a814ad3cc5e747972def80ef2722a1f8f57 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderHoldTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderHoldTest.php
@@ -23,7 +23,7 @@ class OrderHoldTest extends WebapiAbstract
         $order = $objectManager->get('Magento\Sales\Model\Order')->loadByIncrementId('100000001');
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/order/' . $order->getId() . '/hold',
+                'resourcePath' => '/V1/orders/' . $order->getId() . '/hold',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderStatusHistoryAddTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderStatusHistoryAddTest.php
index bb779d74cc0fd70f3eef788647fddc588e5ce141..95858cce508621c7d1bf7aa4d3dee5df379fd9d9 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderStatusHistoryAddTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderStatusHistoryAddTest.php
@@ -57,7 +57,7 @@ class OrderStatusHistoryAddTest extends WebapiAbstract
         $requestData = ['id' => $order->getId(), 'statusHistory' => $commentData];
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/order/' . $order->getId() . '/comment',
+                'resourcePath' => '/V1/orders/' . $order->getId() . '/comments',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderUnHoldTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderUnHoldTest.php
index a8e2a81d6bda64ca1142cdddbd3c4bb8acefa80b..572ba2409e070865e0f9ef9b316c24e93b35c558 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderUnHoldTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/OrderUnHoldTest.php
@@ -27,7 +27,7 @@ class OrderUnHoldTest extends WebapiAbstract
         }
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/order/' . $order->getId() . '/unhold',
+                'resourcePath' => '/V1/orders/' . $order->getId() . '/unhold',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/ShipmentAddCommentTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/ShipmentAddCommentTest.php
index 3e76bd29340a90430ba96116673f82249d4049ea..330fd56c430b6dd682fa9f6d50e530fac74884a2 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/ShipmentAddCommentTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/ShipmentAddCommentTest.php
@@ -61,7 +61,7 @@ class ShipmentAddCommentTest extends WebapiAbstract
         $requestData = ['entity' => $commentData];
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/shipment/comment',
+                'resourcePath' => '/V1/shipment/' . $shipment->getId() . '/comments',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/ShipmentEmailTest.php b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/ShipmentEmailTest.php
index 947d51f70f4b15c1ac3fe0a3141116723614e4f9..d6b59d22475398ce532469035661fba7a51edd64 100644
--- a/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/ShipmentEmailTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Sales/Service/V1/ShipmentEmailTest.php
@@ -27,7 +27,7 @@ class ShipmentEmailTest extends WebapiAbstract
         $shipment = $shipmentCollection->getFirstItem();
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/shipment/' . $shipment->getId() . '/email',
+                'resourcePath' => '/V1/shipment/' . $shipment->getId() . '/emails',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
             ],
             'soap' => [
diff --git a/dev/tests/api-functional/testsuite/Magento/Tax/Api/TaxClassRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Tax/Api/TaxClassRepositoryTest.php
index 4827823190d200e3f3cfa0fcfea198a871cb31dc..1557278ce1bb31a76ac96d90a90c57b6bada4d21 100644
--- a/dev/tests/api-functional/testsuite/Magento/Tax/Api/TaxClassRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Tax/Api/TaxClassRepositoryTest.php
@@ -23,7 +23,7 @@ class TaxClassRepositoryTest extends WebapiAbstract
 {
     const SERVICE_NAME = 'taxTaxClassRepositoryV1';
     const SERVICE_VERSION = 'V1';
-    const RESOURCE_PATH = '/V1/taxClass';
+    const RESOURCE_PATH = '/V1/taxClasses';
 
     /** @var SearchCriteriaBuilder */
     private $searchCriteriaBuilder;
diff --git a/dev/tests/api-functional/testsuite/Magento/Tax/Api/TaxRateRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Tax/Api/TaxRateRepositoryTest.php
index 33b8a783507b35a5fbfbb355d093d1e3349e00a4..6bd1fb20cf5410ba7b209334bdf9437e02f376f4 100644
--- a/dev/tests/api-functional/testsuite/Magento/Tax/Api/TaxRateRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Tax/Api/TaxRateRepositoryTest.php
@@ -18,7 +18,7 @@ class TaxRateRepositoryTest extends WebapiAbstract
 {
     const SERVICE_NAME = "taxTaxRateRepositoryV1";
     const SERVICE_VERSION = "V1";
-    const RESOURCE_PATH = "/V1/taxRate";
+    const RESOURCE_PATH = "/V1/taxRates";
 
     /** @var \Magento\Tax\Model\Calculation\Rate[] */
     private $fixtureTaxRates;
diff --git a/dev/tests/api-functional/testsuite/Magento/Webapi/DataObjectSerialization/CustomAttributeSerializationMSCTest.php b/dev/tests/api-functional/testsuite/Magento/Webapi/DataObjectSerialization/CustomAttributeSerializationMSCTest.php
deleted file mode 100644
index f8ec083d6e1f3aeb0155475ae83ce034f7ecad61..0000000000000000000000000000000000000000
--- a/dev/tests/api-functional/testsuite/Magento/Webapi/DataObjectSerialization/CustomAttributeSerializationMSCTest.php
+++ /dev/null
@@ -1,230 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Webapi\DataObjectSerialization;
-
-use Magento\Framework\Reflection\DataObjectProcessor;
-use Magento\Framework\Webapi\ServiceOutputProcessor;
-use Magento\TestFramework\Helper\Bootstrap;
-use Magento\TestModuleMSC\Api\Data\ItemInterfaceFactory;
-
-/**
- * api-functional/testsuite/Magento/Webapi/DataObjectSerialization/CustomAttributeSerializationMSCTest.php
- * Class to test if custom attributes are serialized correctly for the new Module Service Contract approach
- */
-class CustomAttributeSerializationMSCTest extends \Magento\Webapi\Routing\BaseService
-{
-    /**
-     * @var string
-     */
-    protected $_version;
-    /**
-     * @var string
-     */
-    protected $_restResourcePath;
-    /**
-     * @var string
-     */
-    protected $_soapService = 'testModuleMSCAllSoapAndRest';
-
-    /**
-     * @var ItemInterfaceFactory
-     */
-    protected $itemDataFactory;
-
-    /**
-     * @var \Magento\TestModuleMSC\Api\Data\CustomAttributeNestedDataObjectInterfaceFactory
-     */
-    protected $customAttributeNestedDataObjectDataFactory;
-
-    /**
-     * @var \Magento\TestModuleMSC\Api\Data\CustomAttributeDataObjectInterfaceFactory
-     */
-    protected $customAttributeDataObjectDataFactory;
-
-    /**
-     * @var DataObjectProcessor $dataObjectProcessor
-     */
-    protected $dataObjectProcessor;
-
-    /**
-     * @var ServiceOutputProcessor $serviceOutputProcessor
-     */
-    protected $serviceOutputProcessor;
-
-    /**
-     * Set up custom attribute related data objects
-     */
-    protected function setUp()
-    {
-        $this->_version = 'V1';
-        $this->_soapService = 'testModuleMSCAllSoapAndRestV1';
-        $this->_restResourcePath = "/{$this->_version}/testmoduleMSC/";
-
-        $this->itemDataFactory = Bootstrap::getObjectManager()->create(
-            'Magento\TestModuleMSC\Api\Data\ItemInterfaceFactory'
-        );
-
-        $this->customAttributeNestedDataObjectDataFactory = Bootstrap::getObjectManager()->create(
-            'Magento\TestModuleMSC\Api\Data\CustomAttributeNestedDataObjectInterfaceFactory'
-        );
-
-        $this->customAttributeDataObjectDataFactory = Bootstrap::getObjectManager()->create(
-            'Magento\TestModuleMSC\Api\Data\CustomAttributeDataObjectInterfaceFactory'
-        );
-
-        $this->dataObjectProcessor = Bootstrap::getObjectManager()->create(
-            'Magento\Framework\Reflection\DataObjectProcessor'
-        );
-
-        $this->serviceOutputProcessor = Bootstrap::getObjectManager()->create(
-            'Magento\Framework\Webapi\ServiceOutputProcessor'
-        );
-    }
-
-    public function testSimpleAndNonExistentCustomAttributes()
-    {
-        $serviceInfo = [
-            'rest' => [
-                'resourcePath' => $this->_restResourcePath . 'itemAnyType',
-                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
-            ],
-            'soap' => ['service' => $this->_soapService, 'operation' => $this->_soapService . 'ItemAnyType'],
-        ];
-        $requestData = [
-            'item_id' => 1,
-            'name' => 'testProductAnyType',
-            'custom_attributes' => [
-                    'non_existent' => [
-                            'attribute_code' => 'non_existent',
-                            'value' => 'test',
-                        ],
-                    'custom_attribute_string' => [
-                            'attribute_code' => 'custom_attribute_string',
-                            'value' => 'someStringValue',
-                        ],
-                ],
-        ];
-        $result = $this->_webApiCall($serviceInfo, ['entityItem' => $requestData]);
-
-        //The non_existent custom attribute should be dropped since its not a defined custom attribute
-        $expectedResponse = [
-            'item_id' => 1,
-            'name' => 'testProductAnyType',
-            'custom_attributes' => [
-                    [
-                        'attribute_code' => 'custom_attribute_string',
-                        'value' => 'someStringValue',
-                    ],
-                ],
-        ];
-
-        //\Magento\TestModuleMSC\Api\AllSoapAndRest::itemAnyType just return the input data back as response
-        $this->assertEquals($expectedResponse, $result);
-    }
-
-    public function testDataObjectCustomAttributes()
-    {
-        $customAttributeDataObject = $this->customAttributeDataObjectDataFactory->create()
-            ->setName('nameValue')
-            ->setCustomAttribute('custom_attribute_int', 1);
-
-        $item = $this->itemDataFactory->create()
-            ->setItemId(1)
-            ->setName('testProductAnyType')
-            ->setCustomAttribute('custom_attribute_data_object', $customAttributeDataObject)
-            ->setCustomAttribute('custom_attribute_string', 'someStringValue');
-
-        $serviceInfo = [
-            'rest' => [
-                'resourcePath' => $this->_restResourcePath . 'itemAnyType',
-                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
-            ],
-            'soap' => ['service' => $this->_soapService, 'operation' => $this->_soapService . 'ItemAnyType'],
-        ];
-        $requestData = $this->dataObjectProcessor->buildOutputDataArray(
-            $item,
-            '\Magento\TestModuleMSC\Api\Data\ItemInterface'
-        );
-        $result = $this->_webApiCall($serviceInfo, ['entityItem' => $requestData]);
-
-        $expectedResponse = $this->serviceOutputProcessor->process(
-            $item,
-            '\Magento\TestModuleMSC\Api\AllSoapAndRestInterface',
-            'itemAnyType'
-        );
-        //\Magento\TestModuleMSC\Api\AllSoapAndRest::itemAnyType just return the input data back as response
-        $this->assertEquals($expectedResponse, $result);
-    }
-
-    public function testDataObjectCustomAttributesPreconfiguredItem()
-    {
-        $serviceInfo = [
-            'rest' => [
-                'resourcePath' => $this->_restResourcePath . 'itemPreconfigured',
-                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
-            ],
-            'soap' => ['service' => $this->_soapService, 'operation' => $this->_soapService . 'GetPreconfiguredItem'],
-        ];
-
-        $result = $this->_webApiCall($serviceInfo, []);
-
-        $customAttributeDataObject = $this->customAttributeDataObjectDataFactory->create()
-            ->setName('nameValue')
-            ->setCustomAttribute('custom_attribute_int', 1);
-
-        $item = $this->itemDataFactory->create()
-            ->setItemId(1)
-            ->setName('testProductAnyType')
-            ->setCustomAttribute('custom_attribute_data_object', $customAttributeDataObject)
-            ->setCustomAttribute('custom_attribute_string', 'someStringValue');
-
-        $expectedResponse = $this->serviceOutputProcessor->process(
-            $item,
-            '\Magento\TestModuleMSC\Api\AllSoapAndRestInterface',
-            'getPreconfiguredItem'
-        );
-        $this->assertEquals($expectedResponse, $result);
-    }
-
-    public function testNestedDataObjectCustomAttributes()
-    {
-        $customAttributeNestedDataObject = $this->customAttributeNestedDataObjectDataFactory->create()
-            ->setName('nestedNameValue');
-
-        $customAttributeDataObject = $this->customAttributeDataObjectDataFactory->create()
-            ->setName('nameValue')
-            ->setCustomAttribute('custom_attribute_nested', $customAttributeNestedDataObject)
-            ->setCustomAttribute('custom_attribute_int', 1);
-
-        $item = $this->itemDataFactory->create()
-            ->setItemId(1)
-            ->setName('testProductAnyType')
-            ->setCustomAttribute('custom_attribute_data_object', $customAttributeDataObject)
-            ->setCustomAttribute('custom_attribute_string', 'someStringValue');
-
-        $serviceInfo = [
-            'rest' => [
-                'resourcePath' => $this->_restResourcePath . 'itemAnyType',
-                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
-            ],
-            'soap' => ['service' => $this->_soapService, 'operation' => $this->_soapService . 'ItemAnyType'],
-        ];
-        $requestData = $this->dataObjectProcessor->buildOutputDataArray(
-            $item,
-            '\Magento\TestModuleMSC\Api\Data\ItemInterface'
-        );
-        $result = $this->_webApiCall($serviceInfo, ['entityItem' => $requestData]);
-
-        $expectedResponse = $this->serviceOutputProcessor->process(
-            $item,
-            '\Magento\TestModuleMSC\Api\AllSoapAndRestInterface',
-            'itemAnyType'
-        );
-        //\Magento\TestModuleMSC\Api\AllSoapAndRest::itemAnyType just return the input data back as response
-        $this->assertEquals($expectedResponse, $result);
-    }
-}
diff --git a/dev/tests/api-functional/testsuite/Magento/Webapi/DataObjectSerialization/CustomAttributeSerializationTest.php b/dev/tests/api-functional/testsuite/Magento/Webapi/DataObjectSerialization/CustomAttributeSerializationTest.php
deleted file mode 100644
index 0a1c4b7905d38c9517c452a587276c6c9581890a..0000000000000000000000000000000000000000
--- a/dev/tests/api-functional/testsuite/Magento/Webapi/DataObjectSerialization/CustomAttributeSerializationTest.php
+++ /dev/null
@@ -1,212 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-/**
- * Class to test if custom attributes are serialized correctly
- */
-namespace Magento\Webapi\DataObjectSerialization;
-
-use Magento\Framework\Webapi\ServiceOutputProcessor;
-use Magento\TestFramework\Helper\Bootstrap;
-use Magento\TestModule1\Service\V1\Entity\ItemFactory;
-
-class CustomAttributeSerializationTest extends \Magento\Webapi\Routing\BaseService
-{
-    /**
-     * @var string
-     */
-    protected $_version;
-    /**
-     * @var string
-     */
-    protected $_restResourcePath;
-    /**
-     * @var string
-     */
-    protected $_soapService = 'testModule1AllSoapAndRest';
-
-    /**
-     * @var ItemFactory
-     */
-    protected $itemFactory;
-
-    /**
-     * @var \Magento\TestModule1\Service\V1\Entity\CustomAttributeNestedDataObjectFactory
-     */
-    protected $customAttributeNestedDataObjectFactory;
-
-    /**
-     * @var \Magento\TestModule1\Service\V1\Entity\CustomAttributeDataObjectFactory
-     */
-    protected $customAttributeDataObjectFactory;
-
-    /**
-     * @var ServiceOutputProcessor $serviceOutputProcessor
-     */
-    protected $serviceOutputProcessor;
-
-    /**
-     * Set up custom attribute related data objects
-     */
-    protected function setUp()
-    {
-        $this->_version = 'V1';
-        $this->_soapService = 'testModule1AllSoapAndRestV1';
-        $this->_restResourcePath = "/{$this->_version}/testmodule1/";
-
-        $this->itemFactory = Bootstrap::getObjectManager()->create(
-            'Magento\TestModule1\Service\V1\Entity\ItemFactory'
-        );
-
-        $this->customAttributeNestedDataObjectFactory = Bootstrap::getObjectManager()->create(
-            'Magento\TestModule1\Service\V1\Entity\CustomAttributeNestedDataObjectFactory'
-        );
-
-        $this->customAttributeDataObjectFactory = Bootstrap::getObjectManager()->create(
-            'Magento\TestModule1\Service\V1\Entity\CustomAttributeDataObjectFactory'
-        );
-
-        $this->serviceOutputProcessor = Bootstrap::getObjectManager()->create(
-            'Magento\Framework\Webapi\ServiceOutputProcessor'
-        );
-    }
-
-    public function testSimpleAndNonExistentCustomAttributes()
-    {
-        $serviceInfo = [
-            'rest' => [
-                'resourcePath' => $this->_restResourcePath . 'itemAnyType',
-                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
-            ],
-            'soap' => ['service' => $this->_soapService, 'operation' => $this->_soapService . 'ItemAnyType'],
-        ];
-        $requestData = [
-            'item_id' => 1,
-            'name' => 'testProductAnyType',
-            'custom_attributes' => [
-                    'non_existent' => [
-                            'attribute_code' => 'non_existent',
-                            'value' => 'test',
-                        ],
-                    'custom_attribute_string' => [
-                            'attribute_code' => 'custom_attribute_string',
-                            'value' => 'someStringValue',
-                        ],
-                ],
-        ];
-        $result = $this->_webApiCall($serviceInfo, ['entityItem' => $requestData]);
-
-        //The non_existent custom attribute should be dropped since its not a defined custom attribute
-        $expectedResponse = [
-            'item_id' => 1,
-            'name' => 'testProductAnyType',
-            'custom_attributes' => [
-                    [
-                        'attribute_code' => 'custom_attribute_string',
-                        'value' => 'someStringValue',
-                    ],
-                ],
-        ];
-
-        //\Magento\TestModule1\Service\V1\AllSoapAndRest::itemAnyType just return the input data back as response
-        $this->assertEquals($expectedResponse, $result);
-    }
-
-    public function testDataObjectCustomAttributes()
-    {
-        $customAttributeDataObject = $this->customAttributeDataObjectFactory->create()
-            ->setName('nameValue')
-            ->setCustomAttribute('custom_attribute_int', 1);
-
-        $item = $this->itemFactory->create()
-            ->setItemId(1)
-            ->setName('testProductAnyType')
-            ->setCustomAttribute('custom_attribute_data_object', $customAttributeDataObject)
-            ->setCustomAttribute('custom_attribute_string', 'someStringValue');
-
-        $serviceInfo = [
-            'rest' => [
-                'resourcePath' => $this->_restResourcePath . 'itemAnyType',
-                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
-            ],
-            'soap' => ['service' => $this->_soapService, 'operation' => $this->_soapService . 'ItemAnyType'],
-        ];
-        $requestData = $item->__toArray();
-        $result = $this->_webApiCall($serviceInfo, ['entityItem' => $requestData]);
-
-        $expectedResponse = $this->serviceOutputProcessor->process(
-            $item,
-            '\Magento\TestModule1\Service\V1\AllSoapAndRestInterface',
-            'itemAnyType'
-        );
-        //\Magento\TestModule1\Service\V1\AllSoapAndRest::itemAnyType just return the input data back as response
-        $this->assertEquals($expectedResponse, $result);
-    }
-
-    public function testDataObjectCustomAttributesPreconfiguredItem()
-    {
-        $serviceInfo = [
-            'rest' => [
-                'resourcePath' => $this->_restResourcePath . 'itemPreconfigured',
-                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
-            ],
-            'soap' => ['service' => $this->_soapService, 'operation' => $this->_soapService . 'GetPreconfiguredItem'],
-        ];
-
-        $result = $this->_webApiCall($serviceInfo, []);
-
-        $customAttributeDataObject = $this->customAttributeDataObjectFactory->create()
-            ->setName('nameValue')
-            ->setCustomAttribute('custom_attribute_int', 1);
-
-        $item = $this->itemFactory->create()
-            ->setItemId(1)
-            ->setName('testProductAnyType')
-            ->setCustomAttribute('custom_attribute_data_object', $customAttributeDataObject)
-            ->setCustomAttribute('custom_attribute_string', 'someStringValue');
-        $expectedResponse = $this->serviceOutputProcessor->process(
-            $item,
-            '\Magento\TestModule1\Service\V1\AllSoapAndRestInterface',
-            'getPreconfiguredItem'
-        );
-        $this->assertEquals($expectedResponse, $result);
-    }
-
-    public function testNestedDataObjectCustomAttributes()
-    {
-        $customAttributeNestedDataObject = $this->customAttributeNestedDataObjectFactory->create()
-            ->setName('nestedNameValue');
-
-        $customAttributeDataObject = $this->customAttributeDataObjectFactory->create()
-            ->setName('nameValue')
-            ->setCustomAttribute('custom_attribute_nested', $customAttributeNestedDataObject)
-            ->setCustomAttribute('custom_attribute_int', 1);
-
-        $item = $this->itemFactory->create()
-            ->setItemId(1)
-            ->setName('testProductAnyType')
-            ->setCustomAttribute('custom_attribute_data_object', $customAttributeDataObject)
-            ->setCustomAttribute('custom_attribute_string', 'someStringValue');
-
-        $serviceInfo = [
-            'rest' => [
-                'resourcePath' => $this->_restResourcePath . 'itemAnyType',
-                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
-            ],
-            'soap' => ['service' => $this->_soapService, 'operation' => $this->_soapService . 'ItemAnyType'],
-        ];
-        $requestData = $item->__toArray();
-        $result = $this->_webApiCall($serviceInfo, ['entityItem' => $requestData]);
-
-        $expectedResponse = $this->serviceOutputProcessor->process(
-            $item,
-            '\Magento\TestModule1\Service\V1\AllSoapAndRestInterface',
-            'itemAnyType'
-        );
-        //\Magento\TestModule1\Service\V1\AllSoapAndRest::itemAnyType just return the input data back as response
-        $this->assertEquals($expectedResponse, $result);
-    }
-}
diff --git a/dev/tests/api-functional/testsuite/Magento/Webapi/WsdlGenerationFromDataObjectTest.php b/dev/tests/api-functional/testsuite/Magento/Webapi/WsdlGenerationFromDataObjectTest.php
index aedba2b6b94486a63a736b240d3f5036a1a1c839..c093b3dcf0ad2e9de6510e1f165a9fbec30ceddb 100644
--- a/dev/tests/api-functional/testsuite/Magento/Webapi/WsdlGenerationFromDataObjectTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Webapi/WsdlGenerationFromDataObjectTest.php
@@ -24,19 +24,38 @@ class WsdlGenerationFromDataObjectTest extends \Magento\TestFramework\TestCase\W
     /** @var string */
     protected $_soapUrl;
 
+    /** @var bool */
+    protected $isSingleService;
+
     protected function setUp()
     {
         $this->_markTestAsSoapOnly("WSDL generation tests are intended to be executed for SOAP adapter only.");
         $this->_storeCode = Bootstrap::getObjectManager()->get('Magento\Store\Model\StoreManagerInterface')
             ->getStore()->getCode();
-        $this->_soapUrl = "{$this->_baseUrl}/soap/{$this->_storeCode}?services=testModule5AllSoapAndRestV1%2CtestModule5AllSoapAndRestV2";
         parent::setUp();
     }
 
     public function testMultiServiceWsdl()
     {
+        $this->_soapUrl = "{$this->_baseUrl}/soap/{$this->_storeCode}?services=testModule5AllSoapAndRestV1%2CtestModule5AllSoapAndRestV2";
         $wsdlUrl = $this->_getBaseWsdlUrl() . 'testModule5AllSoapAndRestV1,testModule5AllSoapAndRestV2';
         $wsdlContent = $this->_convertXmlToString($this->_getWsdlContent($wsdlUrl));
+        $this->isSingleService = false;
+
+        $this->_checkTypesDeclaration($wsdlContent);
+        $this->_checkPortTypeDeclaration($wsdlContent);
+        $this->_checkBindingDeclaration($wsdlContent);
+        $this->_checkServiceDeclaration($wsdlContent);
+        $this->_checkMessagesDeclaration($wsdlContent);
+        $this->_checkFaultsDeclaration($wsdlContent);
+    }
+
+    public function testSingleServiceWsdl()
+    {
+        $this->_soapUrl = "{$this->_baseUrl}/soap/{$this->_storeCode}?services=testModule5AllSoapAndRestV2";
+        $wsdlUrl = $this->_getBaseWsdlUrl() . 'testModule5AllSoapAndRestV2';
+        $wsdlContent = $this->_convertXmlToString($this->_getWsdlContent($wsdlUrl));
+        $this->isSingleService = true;
 
         $this->_checkTypesDeclaration($wsdlContent);
         $this->_checkPortTypeDeclaration($wsdlContent);
@@ -129,17 +148,30 @@ TYPES_SECTION_DECLARATION;
      */
     protected function _checkElementsDeclaration($wsdlContent)
     {
-        $requestElement = <<< REQUEST_ELEMENT
+        if ($this->isSingleService) {
+            $requestElement = <<< REQUEST_ELEMENT
+<xsd:element name="testModule5AllSoapAndRestV2ItemRequest" type="tns:TestModule5AllSoapAndRestV2ItemRequest"/>
+REQUEST_ELEMENT;
+        } else {
+            $requestElement = <<< REQUEST_ELEMENT
 <xsd:element name="testModule5AllSoapAndRestV1ItemRequest" type="tns:TestModule5AllSoapAndRestV1ItemRequest"/>
 REQUEST_ELEMENT;
+        }
         $this->assertContains(
             $this->_convertXmlToString($requestElement),
             $wsdlContent,
             'Request element declaration in types section is invalid'
         );
-        $responseElement = <<< RESPONSE_ELEMENT
+
+        if ($this->isSingleService) {
+            $responseElement = <<< RESPONSE_ELEMENT
+<xsd:element name="testModule5AllSoapAndRestV2ItemResponse" type="tns:TestModule5AllSoapAndRestV2ItemResponse"/>
+RESPONSE_ELEMENT;
+        } else {
+            $responseElement = <<< RESPONSE_ELEMENT
 <xsd:element name="testModule5AllSoapAndRestV1ItemResponse" type="tns:TestModule5AllSoapAndRestV1ItemResponse"/>
 RESPONSE_ELEMENT;
+        }
         $this->assertContains(
             $this->_convertXmlToString($responseElement),
             $wsdlContent,
@@ -149,11 +181,37 @@ RESPONSE_ELEMENT;
 
     /**
      * @param string $wsdlContent
+     * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
     protected function _checkComplexTypesDeclaration($wsdlContent)
     {
         // @codingStandardsIgnoreStart
-        $requestType = <<< REQUEST_TYPE
+        if ($this->isSingleService) {
+            $requestType = <<< REQUEST_TYPE
+<xsd:complexType name="TestModule5AllSoapAndRestV2ItemRequest">
+    <xsd:annotation>
+        <xsd:documentation>Retrieve existing item.</xsd:documentation>
+        <xsd:appinfo xmlns:inf="{$this->_soapUrl}"/>
+    </xsd:annotation>
+    <xsd:sequence>
+        <xsd:element name="id" minOccurs="1" maxOccurs="1" type="xsd:int">
+            <xsd:annotation>
+                <xsd:documentation></xsd:documentation>
+                <xsd:appinfo xmlns:inf="{$this->_soapUrl}">
+                    <inf:min/>
+                    <inf:max/>
+                    <inf:callInfo>
+                        <inf:callName>testModule5AllSoapAndRestV2Item</inf:callName>
+                        <inf:requiredInput>Yes</inf:requiredInput>
+                    </inf:callInfo>
+                </xsd:appinfo>
+            </xsd:annotation>
+        </xsd:element>
+    </xsd:sequence>
+</xsd:complexType>
+REQUEST_TYPE;
+        } else {
+            $requestType = <<< REQUEST_TYPE
 <xsd:complexType name="TestModule5AllSoapAndRestV1ItemRequest">
     <xsd:annotation>
         <xsd:documentation>Retrieve an item.</xsd:documentation>
@@ -176,14 +234,41 @@ RESPONSE_ELEMENT;
     </xsd:sequence>
 </xsd:complexType>
 REQUEST_TYPE;
+        }
         // @codingStandardsIgnoreEnd
         $this->assertContains(
             $this->_convertXmlToString($requestType),
             $wsdlContent,
             'Request type declaration in types section is invalid'
         );
+
         // @codingStandardsIgnoreStart
-        $responseType = <<< RESPONSE_TYPE
+        if ($this->isSingleService) {
+            $responseType = <<< RESPONSE_TYPE
+<xsd:complexType name="TestModule5AllSoapAndRestV2ItemResponse">
+    <xsd:annotation>
+        <xsd:documentation>
+            Response container for the testModule5AllSoapAndRestV2Item call.
+        </xsd:documentation>
+        <xsd:appinfo xmlns:inf="{$this->_soapUrl}"/>
+    </xsd:annotation>
+    <xsd:sequence>
+        <xsd:element name="result" minOccurs="1" maxOccurs="1" type="tns:TestModule5V2EntityAllSoapAndRest">
+            <xsd:annotation>
+                <xsd:documentation></xsd:documentation>
+                <xsd:appinfo xmlns:inf="{$this->_soapUrl}">
+                    <inf:callInfo>
+                        <inf:callName>testModule5AllSoapAndRestV2Item</inf:callName>
+                        <inf:returned>Always</inf:returned>
+                    </inf:callInfo>
+                </xsd:appinfo>
+            </xsd:annotation>
+        </xsd:element>
+    </xsd:sequence>
+</xsd:complexType>
+RESPONSE_TYPE;
+        } else {
+            $responseType = <<< RESPONSE_TYPE
 <xsd:complexType name="TestModule5AllSoapAndRestV1ItemResponse">
     <xsd:annotation>
         <xsd:documentation>
@@ -206,6 +291,7 @@ REQUEST_TYPE;
     </xsd:sequence>
 </xsd:complexType>
 RESPONSE_TYPE;
+        }
         // @codingStandardsIgnoreEnd
         $this->assertContains(
             $this->_convertXmlToString($responseType),
@@ -224,7 +310,40 @@ RESPONSE_TYPE;
     protected function _checkReferencedTypeDeclaration($wsdlContent)
     {
         // @codingStandardsIgnoreStart
-        $referencedType = <<< RESPONSE_TYPE
+        if ($this->isSingleService) {
+            $referencedType = <<< RESPONSE_TYPE
+<xsd:complexType name="TestModule5V2EntityAllSoapAndRest">
+    <xsd:annotation>
+        <xsd:documentation></xsd:documentation>
+        <xsd:appinfo xmlns:inf="{$this->_soapUrl}"/>
+    </xsd:annotation>
+    <xsd:sequence>
+        <xsd:element name="price" minOccurs="1" maxOccurs="1" type="xsd:int">
+            <xsd:annotation>
+                <xsd:documentation></xsd:documentation>
+                <xsd:appinfo xmlns:inf="{$this->_soapUrl}">
+                    <inf:min/>
+                    <inf:max/>
+                    <inf:callInfo>
+                        <inf:callName>testModule5AllSoapAndRestV2Item</inf:callName>
+                        <inf:callName>testModule5AllSoapAndRestV2Create</inf:callName>
+                        <inf:callName>testModule5AllSoapAndRestV2Update</inf:callName>
+                        <inf:callName>testModule5AllSoapAndRestV2Delete</inf:callName>
+                        <inf:returned>Always</inf:returned>
+                    </inf:callInfo>
+                    <inf:callInfo>
+                        <inf:callName>testModule5AllSoapAndRestV2Create</inf:callName>
+                        <inf:callName>testModule5AllSoapAndRestV2Update</inf:callName>
+                        <inf:requiredInput>Yes</inf:requiredInput>
+                    </inf:callInfo>
+                </xsd:appinfo>
+            </xsd:annotation>
+        </xsd:element>
+    </xsd:sequence>
+</xsd:complexType>
+RESPONSE_TYPE;
+        } else {
+            $referencedType = <<< RESPONSE_TYPE
 <xsd:complexType name="TestModule5V1EntityAllSoapAndRest">
     <xsd:annotation>
         <xsd:documentation>Some Data Object short description. Data Object long multi line description.</xsd:documentation>
@@ -340,6 +459,7 @@ RESPONSE_TYPE;
     </xsd:sequence>
 </xsd:complexType>
 RESPONSE_TYPE;
+        }
         // @codingStandardsIgnoreEnd
         $this->assertContains(
             $this->_convertXmlToString($referencedType),
@@ -355,15 +475,23 @@ RESPONSE_TYPE;
      */
     protected function _checkPortTypeDeclaration($wsdlContent)
     {
-        $firstPortType = <<< FIRST_PORT_TYPE
+        if ($this->isSingleService) {
+            $firstPortType = <<< FIRST_PORT_TYPE
+<portType name="testModule5AllSoapAndRestV2PortType">
+FIRST_PORT_TYPE;
+        } else {
+            $firstPortType = <<< FIRST_PORT_TYPE
 <portType name="testModule5AllSoapAndRestV1PortType">
 FIRST_PORT_TYPE;
+        }
         $this->assertContains(
             $this->_convertXmlToString($firstPortType),
             $wsdlContent,
             'Port type declaration is missing or invalid'
         );
-        $secondPortType = <<< SECOND_PORT_TYPE
+
+        if (!$this->isSingleService) {
+            $secondPortType = <<< SECOND_PORT_TYPE
 <portType name="testModule5AllSoapAndRestV2PortType">
 SECOND_PORT_TYPE;
         $this->assertContains(
@@ -371,7 +499,10 @@ SECOND_PORT_TYPE;
             $wsdlContent,
             'Port type declaration is missing or invalid'
         );
-        $operationDeclaration = <<< OPERATION_DECLARATION
+        }
+
+        if ($this->isSingleService) {
+            $operationDeclaration = <<< OPERATION_DECLARATION
 <operation name="testModule5AllSoapAndRestV2Item">
     <input message="tns:testModule5AllSoapAndRestV2ItemRequest"/>
     <output message="tns:testModule5AllSoapAndRestV2ItemResponse"/>
@@ -383,6 +514,20 @@ SECOND_PORT_TYPE;
     <fault name="GenericFault" message="tns:GenericFault"/>
 </operation>
 OPERATION_DECLARATION;
+        } else {
+            $operationDeclaration = <<< OPERATION_DECLARATION
+<operation name="testModule5AllSoapAndRestV2Item">
+    <input message="tns:testModule5AllSoapAndRestV2ItemRequest"/>
+    <output message="tns:testModule5AllSoapAndRestV2ItemResponse"/>
+    <fault name="GenericFault" message="tns:GenericFault"/>
+</operation>
+<operation name="testModule5AllSoapAndRestV2Items">
+    <input message="tns:testModule5AllSoapAndRestV2ItemsRequest"/>
+    <output message="tns:testModule5AllSoapAndRestV2ItemsResponse"/>
+    <fault name="GenericFault" message="tns:GenericFault"/>
+</operation>
+OPERATION_DECLARATION;
+        }
         $this->assertContains(
             $this->_convertXmlToString($operationDeclaration),
             $wsdlContent,
@@ -397,25 +542,60 @@ OPERATION_DECLARATION;
      */
     protected function _checkBindingDeclaration($wsdlContent)
     {
-        $firstBinding = <<< FIRST_BINDING
+        if ($this->isSingleService) {
+            $firstBinding = <<< FIRST_BINDING
+<binding name="testModule5AllSoapAndRestV2Binding" type="tns:testModule5AllSoapAndRestV2PortType">
+    <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+FIRST_BINDING;
+        } else {
+            $firstBinding = <<< FIRST_BINDING
 <binding name="testModule5AllSoapAndRestV1Binding" type="tns:testModule5AllSoapAndRestV1PortType">
     <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
 FIRST_BINDING;
+        }
         $this->assertContains(
             $this->_convertXmlToString($firstBinding),
             $wsdlContent,
             'Binding declaration is missing or invalid'
         );
-        $secondBinding = <<< SECOND_BINDING
+
+        if (!$this->isSingleService) {
+            $secondBinding = <<< SECOND_BINDING
 <binding name="testModule5AllSoapAndRestV2Binding" type="tns:testModule5AllSoapAndRestV2PortType">
     <soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
 SECOND_BINDING;
-        $this->assertContains(
-            $this->_convertXmlToString($secondBinding),
-            $wsdlContent,
-            'Binding declaration is missing or invalid'
-        );
-        $operationDeclaration = <<< OPERATION_DECLARATION
+            $this->assertContains(
+                $this->_convertXmlToString($secondBinding),
+                $wsdlContent,
+                'Binding declaration is missing or invalid'
+            );
+        }
+
+        if ($this->isSingleService) {
+            $operationDeclaration = <<< OPERATION_DECLARATION
+<operation name="testModule5AllSoapAndRestV2Item">
+    <soap12:operation soapAction="testModule5AllSoapAndRestV2Item"/>
+    <input>
+        <soap12:body use="literal"/>
+    </input>
+    <output>
+        <soap12:body use="literal"/>
+    </output>
+    <fault name="GenericFault"/>
+</operation>
+<operation name="testModule5AllSoapAndRestV2Items">
+    <soap12:operation soapAction="testModule5AllSoapAndRestV2Items"/>
+    <input>
+        <soap12:body use="literal"/>
+    </input>
+    <output>
+        <soap12:body use="literal"/>
+    </output>
+    <fault name="GenericFault"/>
+</operation>
+OPERATION_DECLARATION;
+        } else {
+            $operationDeclaration = <<< OPERATION_DECLARATION
 <operation name="testModule5AllSoapAndRestV1Item">
     <soap12:operation soapAction="testModule5AllSoapAndRestV1Item"/>
     <input>
@@ -437,6 +617,7 @@ SECOND_BINDING;
     <fault name="GenericFault"/>
 </operation>
 OPERATION_DECLARATION;
+        }
         $this->assertContains(
             $this->_convertXmlToString($operationDeclaration),
             $wsdlContent,
@@ -452,13 +633,23 @@ OPERATION_DECLARATION;
     protected function _checkServiceDeclaration($wsdlContent)
     {
         // @codingStandardsIgnoreStart
-        $firstServiceDeclaration = <<< FIRST_SERVICE_DECLARATION
+        if ($this->isSingleService) {
+            $firstServiceDeclaration = <<< FIRST_SERVICE_DECLARATION
+<service name="testModule5AllSoapAndRestV2Service">
+    <port name="testModule5AllSoapAndRestV2Port" binding="tns:testModule5AllSoapAndRestV2Binding">
+        <soap12:address location="{$this->_baseUrl}/soap/{$this->_storeCode}?services=testModule5AllSoapAndRestV2"/>
+    </port>
+</service>
+FIRST_SERVICE_DECLARATION;
+        } else {
+            $firstServiceDeclaration = <<< FIRST_SERVICE_DECLARATION
 <service name="testModule5AllSoapAndRestV1Service">
     <port name="testModule5AllSoapAndRestV1Port" binding="tns:testModule5AllSoapAndRestV1Binding">
         <soap12:address location="{$this->_baseUrl}/soap/{$this->_storeCode}?services=testModule5AllSoapAndRestV1%2CtestModule5AllSoapAndRestV2"/>
     </port>
 </service>
 FIRST_SERVICE_DECLARATION;
+        }
         // @codingStandardsIgnoreEnd
         $this->assertContains(
             $this->_convertXmlToString($firstServiceDeclaration),
@@ -467,19 +658,21 @@ FIRST_SERVICE_DECLARATION;
         );
 
         // @codingStandardsIgnoreStart
-        $secondServiceDeclaration = <<< SECOND_SERVICE_DECLARATION
+        if (!$this->isSingleService) {
+            $secondServiceDeclaration = <<< SECOND_SERVICE_DECLARATION
 <service name="testModule5AllSoapAndRestV2Service">
     <port name="testModule5AllSoapAndRestV2Port" binding="tns:testModule5AllSoapAndRestV2Binding">
         <soap12:address location="{$this->_baseUrl}/soap/{$this->_storeCode}?services=testModule5AllSoapAndRestV1%2CtestModule5AllSoapAndRestV2"/>
     </port>
 </service>
 SECOND_SERVICE_DECLARATION;
-        // @codingStandardsIgnoreEnd
-        $this->assertContains(
-            $this->_convertXmlToString($secondServiceDeclaration),
-            $wsdlContent,
-            'Second service section is invalid'
-        );
+            // @codingStandardsIgnoreEnd
+            $this->assertContains(
+                $this->_convertXmlToString($secondServiceDeclaration),
+                $wsdlContent,
+                'Second service section is invalid'
+            );
+        }
     }
 
     /**
@@ -654,7 +847,31 @@ PARAM_COMPLEX_TYPE;
             'Details parameter complex types declaration is invalid.'
         );
 
-        $detailsWrappedErrorType = <<< WRAPPED_ERROR_COMPLEX_TYPE
+        if ($this->isSingleService) {
+            $detailsWrappedErrorType = <<< WRAPPED_ERROR_COMPLEX_TYPE
+<xsd:complexType name="WrappedError">
+    <xsd:sequence>
+        <xsd:element name="message" minOccurs="1" maxOccurs="1" type="xsd:string">
+            <xsd:annotation>
+                <xsd:documentation></xsd:documentation>
+                <xsd:appinfo xmlns:inf="{$this->_baseUrl}/soap/{$this->_storeCode}?services=testModule5AllSoapAndRestV2">
+                    <inf:maxLength/>
+                </xsd:appinfo>
+            </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="parameters" type="tns:ArrayOfGenericFaultParameter" minOccurs="0">
+            <xsd:annotation>
+                <xsd:documentation>Message parameters.</xsd:documentation>
+                <xsd:appinfo xmlns:inf="{$this->_baseUrl}/soap/{$this->_storeCode}?services=testModule5AllSoapAndRestV2">
+                    <inf:natureOfType>array</inf:natureOfType>
+                </xsd:appinfo>
+            </xsd:annotation>
+        </xsd:element>
+    </xsd:sequence>
+</xsd:complexType>
+WRAPPED_ERROR_COMPLEX_TYPE;
+        } else {
+            $detailsWrappedErrorType = <<< WRAPPED_ERROR_COMPLEX_TYPE
 <xsd:complexType name="WrappedError">
     <xsd:sequence>
         <xsd:element name="message" minOccurs="1" maxOccurs="1" type="xsd:string">
@@ -676,6 +893,7 @@ PARAM_COMPLEX_TYPE;
     </xsd:sequence>
 </xsd:complexType>
 WRAPPED_ERROR_COMPLEX_TYPE;
+        }
         $this->assertContains(
             $this->_convertXmlToString($detailsWrappedErrorType),
             $wsdlContent,
@@ -705,7 +923,25 @@ PARAMETERS_COMPLEX_TYPE;
             'Details parameters (array of parameters) complex types declaration is invalid.'
         );
 
-        $detailsWrappedErrorsType = <<< WRAPPED_ERRORS_COMPLEX_TYPE
+        if ($this->isSingleService) {
+            $detailsWrappedErrorsType = <<< WRAPPED_ERRORS_COMPLEX_TYPE
+<xsd:complexType name="ArrayOfWrappedError">
+    <xsd:annotation>
+        <xsd:documentation>An array of WrappedError items.</xsd:documentation>
+        <xsd:appinfo xmlns:inf="{$this->_baseUrl}/soap/{$this->_storeCode}?services=testModule5AllSoapAndRestV2"/>
+    </xsd:annotation>
+    <xsd:sequence>
+        <xsd:element name="item" minOccurs="0" maxOccurs="unbounded" type="tns:WrappedError">
+            <xsd:annotation>
+                <xsd:documentation>An item of ArrayOfWrappedError.</xsd:documentation>
+                <xsd:appinfo xmlns:inf="{$this->_baseUrl}/soap/{$this->_storeCode}?services=testModule5AllSoapAndRestV2"/>
+            </xsd:annotation>
+        </xsd:element>
+    </xsd:sequence>
+</xsd:complexType>
+WRAPPED_ERRORS_COMPLEX_TYPE;
+        } else {
+            $detailsWrappedErrorsType = <<< WRAPPED_ERRORS_COMPLEX_TYPE
 <xsd:complexType name="ArrayOfWrappedError">
     <xsd:annotation>
         <xsd:documentation>An array of WrappedError items.</xsd:documentation>
@@ -721,6 +957,8 @@ PARAMETERS_COMPLEX_TYPE;
     </xsd:sequence>
 </xsd:complexType>
 WRAPPED_ERRORS_COMPLEX_TYPE;
+
+        }
         // @codingStandardsIgnoreEnd
         $this->assertContains(
             $this->_convertXmlToString($detailsWrappedErrorsType),
diff --git a/dev/tests/functional/phpunit.xml.dist b/dev/tests/functional/phpunit.xml.dist
index 255d3cf4057d4fdae9965848d64225317e2ba0fc..06b2ee9b0603d8fd6e602011e34ddbf2b131c00f 100755
--- a/dev/tests/functional/phpunit.xml.dist
+++ b/dev/tests/functional/phpunit.xml.dist
@@ -36,7 +36,7 @@
         <env name="testsuite_rule_path" value="Magento/Mtf/TestSuite/InjectableTests" />
         <env name="log_directory" value="var/log" />
         <env name="events_preset" value="base" />
-        <env name="module_whitelist" value="Magento_Install" />
+        <env name="module_whitelist" value="Magento_Install,Magento_Core" />
         <env name="report_file_name" value="test-cases-report.xml"/>
         <env name="basedir" value="var/log" />
         <env name="credentials_file_path" value="./credentials.xml.dist" />
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/ConfigData.xml
index a2b7c380a102f302f5d93688fcb98662b03a345e..8bed37c9f9ba9a008e35327b901217acf596e00a 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/ConfigData.xml
@@ -10,7 +10,7 @@
            module="Magento_Core" 
            type="flat" 
            entity_type="core_config_data" 
-           collection="Magento\Core\Model\Resource\Config\Data\Collection" 
+           collection="Magento\Config\Model\Resource\Config\Data\Collection"
            repository_class="Magento\Core\Test\Repository\ConfigData" 
            handler_interface="Magento\Core\Test\Handler\ConfigData\ConfigDataInterface" 
            class="Magento\Core\Test\Fixture\ConfigData">
diff --git a/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/SystemVariable.xml b/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/SystemVariable.xml
index c313b15a2c676409f660a274ce83234824579979..01f5710dc7a3d13d105d0dfbfadf6c06406d55f2 100644
--- a/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/SystemVariable.xml
+++ b/dev/tests/functional/tests/app/Magento/Core/Test/Fixture/SystemVariable.xml
@@ -9,7 +9,7 @@
   <fixture name="systemVariable" 
            module="Magento_Core" 
            type="composite" 
-           collection="Magento\Core\Model\Resource\Variable\Collection" 
+           collection="Magento\Variable\Model\Resource\Variable\Collection"
            handler_interface="Magento\Core\Test\Handler\SystemVariable\SystemVariableInterface" 
            class="Magento\Core\Test\Fixture\SystemVariable">
     <dataset name="default">
diff --git a/dev/tests/integration/framework/Magento/TestFramework/Entity.php b/dev/tests/integration/framework/Magento/TestFramework/Entity.php
index ea6ecef137d5e621039966b1b279eeb6c7fdf497..dc9793f6a05c61e6070f815f06abc31734ca66da 100644
--- a/dev/tests/integration/framework/Magento/TestFramework/Entity.php
+++ b/dev/tests/integration/framework/Magento/TestFramework/Entity.php
@@ -7,7 +7,7 @@
 namespace Magento\TestFramework;
 
 /**
- * Class that implements CRUD tests for \Magento\Core\Model\AbstractModel based objects
+ * Class that implements CRUD tests for \Magento\Framework\Model\AbstractModel based objects
  */
 class Entity
 {
diff --git a/dev/tests/integration/framework/Magento/TestFramework/Event/Magento.php b/dev/tests/integration/framework/Magento/TestFramework/Event/Magento.php
index 9c1e8f43d68f94dd150f7861383a864c5f97772a..08812d8caf3b5f758a1f447e02dbf602d8a339ad 100644
--- a/dev/tests/integration/framework/Magento/TestFramework/Event/Magento.php
+++ b/dev/tests/integration/framework/Magento/TestFramework/Event/Magento.php
@@ -4,11 +4,11 @@
  * See COPYING.txt for license details.
  */
 
-/**
- * Observer of Magento events triggered using Magento_Core_Model_\Magento\TestFramework\EventManager::dispatch()
- */
 namespace Magento\TestFramework\Event;
 
+/**
+ * Observer of Magento events triggered using \Magento\TestFramework\EventManager::dispatch()
+ */
 class Magento
 {
     /**
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/CategoryTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/CategoryTest.php
index 2d221e570a8ed1f34e7076f87ea95ea5ec637d33..75f5172727328e6cdc75008889dc68730568331e 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/CategoryTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Controller/Adminhtml/CategoryTest.php
@@ -11,7 +11,7 @@ namespace Magento\Catalog\Controller\Adminhtml;
 class CategoryTest extends \Magento\Backend\Utility\Controller
 {
     /**
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      * @magentoDbIsolation enabled
      * @magentoConfigFixture current_store catalog/frontend/flat_catalog_product 1
      * @dataProvider saveActionDataProvider
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTest.php
index 72a723413d214a205e9004f35185f0861dbc488d..2eb662d331ffc0a1e6717690ed3a55dc1a5f152b 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/CategoryTest.php
@@ -115,7 +115,7 @@ class CategoryTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      * @magentoAppIsolation enabled
      * @magentoConfigFixture current_store catalog/frontend/flat_catalog_product 1
      */
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Product/Flat/ProcessorTest.php b/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Product/Flat/ProcessorTest.php
index 16bc2ff9e719257d271223d7e1f825057ac3fe71..2eb856f8f8236f39b824ec3f329afc62101c2b62 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Product/Flat/ProcessorTest.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/Model/Indexer/Product/Flat/ProcessorTest.php
@@ -88,7 +88,7 @@ class ProcessorTest extends \Magento\TestFramework\Indexer\TestCase
      * @magentoDbIsolation enabled
      * @magentoAppIsolation enabled
      * @magentoAppArea adminhtml
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      * @magentoConfigFixture current_store catalog/frontend/flat_catalog_product 1
      */
     public function testAddNewStore()
diff --git a/dev/tests/integration/testsuite/Magento/Catalog/_files/product_simple_multistore.php b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_simple_multistore.php
index 4f9c3e4c3fecf059e19661ee158d1e36a8da5979..133bc16660b5d139f225a735d1503bc3a9318ce0 100644
--- a/dev/tests/integration/testsuite/Magento/Catalog/_files/product_simple_multistore.php
+++ b/dev/tests/integration/testsuite/Magento/Catalog/_files/product_simple_multistore.php
@@ -3,7 +3,7 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-require __DIR__ . '/../../Core/_files/store.php';
+require __DIR__ . '/../../Store/_files/core_fixturestore.php';
 $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 
 /** @var Magento\Store\Model\Store $store */
diff --git a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
index eb7f1a37ba216ffaa43d603e87ae475e6b3accc6..d3e665a753e5b1e401de8675209dbd64650b49d8 100644
--- a/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
+++ b/dev/tests/integration/testsuite/Magento/CatalogImportExport/Model/Import/ProductTest.php
@@ -779,7 +779,7 @@ class ProductTest extends \PHPUnit_Framework_TestCase
 
     /**
      * @magentoDataFixture Magento/Catalog/_files/categories.php
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      * @magentoDataFixture Magento/Catalog/Model/Layer/Filter/_files/attribute_with_option.php
      * @magentoDataFixture Magento/ConfigurableProduct/_files/configurable_attribute.php
      * @magentoAppIsolation enabled
diff --git a/dev/tests/integration/testsuite/Magento/Core/Controller/IndexTest.php b/dev/tests/integration/testsuite/Magento/Core/Controller/IndexTest.php
deleted file mode 100644
index 0332a70a8d6024f88bf5cd55fdb735ad5ee8b07e..0000000000000000000000000000000000000000
--- a/dev/tests/integration/testsuite/Magento/Core/Controller/IndexTest.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-namespace Magento\Core\Controller;
-
-class IndexTest extends \Magento\TestFramework\TestCase\AbstractController
-{
-    public function testNotFoundAction()
-    {
-        $this->dispatch('core/index/notFound');
-        $this->assertEquals('404', $this->getResponse()->getHttpResponseCode());
-        $this->assertEquals('Requested resource not found', $this->getResponse()->getBody());
-    }
-}
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/Theme/Source/_files/design/frontend/a_d/file b/dev/tests/integration/testsuite/Magento/Core/Model/Theme/Source/_files/design/frontend/a_d/file
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/Theme/Source/_files/design/frontend/b_e/file b/dev/tests/integration/testsuite/Magento/Core/Model/Theme/Source/_files/design/frontend/b_e/file
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/Theme/Source/_files/design/frontend/magento_default/file b/dev/tests/integration/testsuite/Magento/Core/Model/Theme/Source/_files/design/frontend/magento_default/file
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/Theme/Source/_files/design/frontend/magento_g/file b/dev/tests/integration/testsuite/Magento/Core/Model/Theme/Source/_files/design/frontend/magento_g/file
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/Magento/Core/i18n/en_AU.csv b/dev/tests/integration/testsuite/Magento/Core/Model/_files/Magento/Core/i18n/en_AU.csv
deleted file mode 100644
index 0d502c76477f11d34f4b2bfb33c1ca0989fee185..0000000000000000000000000000000000000000
--- a/dev/tests/integration/testsuite/Magento/Core/Model/_files/Magento/Core/i18n/en_AU.csv
+++ /dev/null
@@ -1 +0,0 @@
-"Original value for Magento_Core module","Translated value for Magento_Core module in en_AU"
diff --git a/dev/tests/integration/testsuite/Magento/Core/_files/config_cache.php b/dev/tests/integration/testsuite/Magento/Core/_files/config_cache.php
deleted file mode 100644
index 6a4289fe4ea26e07297dd3a64abf32215d1f0c50..0000000000000000000000000000000000000000
--- a/dev/tests/integration/testsuite/Magento/Core/_files/config_cache.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-/** @var \Magento\Framework\App\Cache\Type\Config $layoutCache */
-$layoutCache = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
-    ->get('Magento\Framework\App\Cache\Type\Config');
-$layoutCache->save('fixture config cache data', 'CONFIG_CACHE_FIXTURE');
diff --git a/dev/tests/integration/testsuite/Magento/Core/_files/etc/config.xml b/dev/tests/integration/testsuite/Magento/Core/_files/etc/config.xml
deleted file mode 100644
index ef1e23d46c54ee613613a0ce4a2f42f19d79280a..0000000000000000000000000000000000000000
--- a/dev/tests/integration/testsuite/Magento/Core/_files/etc/config.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../app/code/Magento/Core/etc/config.xsd">
-    <default>
-        <areas>
-            <test_area1>
-                <areaNode>value</areaNode>
-            </test_area1>
-            <test_area2>
-            </test_area2>
-            <test_area3>
-            </test_area3>
-        </areas>
-    </default>
-</config>
diff --git a/dev/tests/integration/testsuite/Magento/Core/_files/etc/module.xml b/dev/tests/integration/testsuite/Magento/Core/_files/etc/module.xml
deleted file mode 100644
index 746181c42b2bae0f4888a87fad1eabcce954bc33..0000000000000000000000000000000000000000
--- a/dev/tests/integration/testsuite/Magento/Core/_files/etc/module.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
-    <module name="Magento_Core" setup_version="1.6.0.2" />
-</config>
diff --git a/dev/tests/integration/testsuite/Magento/Core/_files/fixture.csv b/dev/tests/integration/testsuite/Magento/Core/_files/fixture.csv
deleted file mode 100644
index 297c90f5e6ec9735cd6c518b6e65ba61cf38f11e..0000000000000000000000000000000000000000
--- a/dev/tests/integration/testsuite/Magento/Core/_files/fixture.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-"Search:","Fixture search:"
-"Search entire store here...","Fixture search entire store here..."
-"Fixture string","Fixture translation"
diff --git a/dev/tests/integration/testsuite/Magento/Customer/Model/Config/ShareTest.php b/dev/tests/integration/testsuite/Magento/Customer/Model/Config/ShareTest.php
index 67243448374f24d8e3348638fd95eee4c1ccc724..7ec75e92d513795c73eaa286704bf3da208b707d 100644
--- a/dev/tests/integration/testsuite/Magento/Customer/Model/Config/ShareTest.php
+++ b/dev/tests/integration/testsuite/Magento/Customer/Model/Config/ShareTest.php
@@ -23,7 +23,7 @@ class ShareTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @magentoDataFixture Magento/Core/_files/second_third_store.php
+     * @magentoDataFixture Magento/Store/_files/core_second_third_fixturestore.php
      * @magentoConfigFixture current_store customer/account_share/scope 0
      */
     public function testGetSharedWebsiteIdsMultipleSites()
diff --git a/dev/tests/integration/testsuite/Magento/Customer/Model/GroupManagementTest.php b/dev/tests/integration/testsuite/Magento/Customer/Model/GroupManagementTest.php
index e08486410020a74ff23d708edb92749e552a36e7..59c904036a712bf1d360c58a82ebb929fe5498d4 100644
--- a/dev/tests/integration/testsuite/Magento/Customer/Model/GroupManagementTest.php
+++ b/dev/tests/integration/testsuite/Magento/Customer/Model/GroupManagementTest.php
@@ -42,10 +42,10 @@ class GroupManagementTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @magentoDataFixture Magento/Core/_files/second_third_store.php
+     * @magentoDataFixture Magento/Store/_files/core_second_third_fixturestore.php
      */
     public function testGetDefaultGroupWithNonDefaultStoreId()
-    {   
+    {
         /** @var \Magento\Store\Model\StoreManagerInterface  $storeManager */
         $storeManager = Bootstrap::getObjectManager()->get('Magento\Store\Model\StoreManagerInterface');
         $nonDefaultStore = $storeManager->getStore('secondstore');
diff --git a/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php b/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php
index eeea37be4c2828f7c2aacda436d1697a9751faa3..06746a974e5b04da732eedcb072fd66dc8b0adbc 100644
--- a/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php
+++ b/dev/tests/integration/testsuite/Magento/Email/Model/Template/FilterTest.php
@@ -176,7 +176,7 @@ class FilterTest extends \PHPUnit_Framework_TestCase
             ],
             'custom parameter' => [
                 'frontend',
-                'handle="email_template_test_handle" template="Magento_Core::sample_email_content_custom.phtml"',
+                'handle="email_template_test_handle" template="Magento_Email::sample_email_content_custom.phtml"',
                 'Custom E-mail content for frontend/test_default theme',
             ],
         ];
diff --git a/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php b/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php
index 5ffaed0005fadfe797d43b1753b32e13c1c35903..72cbb8f071d6f7b0a8cdd2574bc3ccb6005eabe1 100644
--- a/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php
+++ b/dev/tests/integration/testsuite/Magento/Email/Model/TemplateTest.php
@@ -89,7 +89,7 @@ class TemplateTest extends \PHPUnit_Framework_TestCase
 
     /**
      * @magentoAppIsolation enabled
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      */
     public function testGetProcessedTemplate()
     {
@@ -137,7 +137,7 @@ class TemplateTest extends \PHPUnit_Framework_TestCase
 
     /**
      * @magentoAppIsolation enabled
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      */
     public function testGetProcessedTemplateSubject()
     {
@@ -185,7 +185,7 @@ class TemplateTest extends \PHPUnit_Framework_TestCase
      */
     public function testSetDesignConfigException($config)
     {
-        // \Magento\Core\Model\Template is an abstract class
+        // \Magento\Email\Model\Template is an abstract class
         $model = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
             ->create('Magento\Email\Model\Template');
         $model->setDesignConfig($config);
diff --git a/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/adminhtml/test_default/Magento_Core/layout/email_template_test_handle.xml b/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/adminhtml/test_default/Magento_Email/layout/email_template_test_handle.xml
similarity index 79%
rename from dev/tests/integration/testsuite/Magento/Email/Model/_files/design/adminhtml/test_default/Magento_Core/layout/email_template_test_handle.xml
rename to dev/tests/integration/testsuite/Magento/Email/Model/_files/design/adminhtml/test_default/Magento_Email/layout/email_template_test_handle.xml
index 0fb1b826f9e7e6f6369fba3fd85313338ba42448..43ce29cbfa0a414e784d2c2d87f5188578038443 100644
--- a/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/adminhtml/test_default/Magento_Core/layout/email_template_test_handle.xml
+++ b/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/adminhtml/test_default/Magento_Email/layout/email_template_test_handle.xml
@@ -6,5 +6,5 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
-    <block class="Magento\Backend\Block\Template" name="sample_email_content" template="Magento_Core::sample_email_content.phtml"/>
+    <block class="Magento\Backend\Block\Template" name="sample_email_content" template="Magento_Email::sample_email_content.phtml"/>
 </layout>
diff --git a/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/adminhtml/test_default/Magento_Core/templates/sample_email_content.phtml b/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/adminhtml/test_default/Magento_Email/templates/sample_email_content.phtml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Email/Model/_files/design/adminhtml/test_default/Magento_Core/templates/sample_email_content.phtml
rename to dev/tests/integration/testsuite/Magento/Email/Model/_files/design/adminhtml/test_default/Magento_Email/templates/sample_email_content.phtml
diff --git a/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Core/layout/email_template_test_handle.xml b/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Email/layout/email_template_test_handle.xml
similarity index 87%
rename from dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Core/layout/email_template_test_handle.xml
rename to dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Email/layout/email_template_test_handle.xml
index 359f9c07e07ccfb6ac794116afa1fe4aee781c90..767644707ff84fe0b5c19561a8bc28e2f0e02aaa 100644
--- a/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Core/layout/email_template_test_handle.xml
+++ b/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Email/layout/email_template_test_handle.xml
@@ -6,7 +6,7 @@
  */
 -->
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
-    <block class="Magento\Framework\View\Element\Template" name="sample_email_content" template="Magento_Core::sample_email_content.phtml"/>
+    <block class="Magento\Framework\View\Element\Template" name="sample_email_content" template="Magento_Email::sample_email_content.phtml"/>
     <block class="Magento\Framework\View\Element\Text" name="ignored_email_content">
         <action method="setText">
             <argument name="text" xsi:type="string">Ignored e-mail content, only the first block is used</argument>
diff --git a/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Core/templates/sample_email_content.phtml b/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Email/templates/sample_email_content.phtml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Core/templates/sample_email_content.phtml
rename to dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Email/templates/sample_email_content.phtml
diff --git a/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Core/templates/sample_email_content_custom.phtml b/dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Email/templates/sample_email_content_custom.phtml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Core/templates/sample_email_content_custom.phtml
rename to dev/tests/integration/testsuite/Magento/Email/Model/_files/design/frontend/test_default/Magento_Email/templates/sample_email_content_custom.phtml
diff --git a/dev/tests/integration/testsuite/Magento/Framework/App/Router/BaseTest.php b/dev/tests/integration/testsuite/Magento/Framework/App/Router/BaseTest.php
index c4fa6c52bcbf54d81dc14e42b08b101be27924bd..f2519497eeba1427d9c2005b3c0215020c32b6f3 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/App/Router/BaseTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/App/Router/BaseTest.php
@@ -36,7 +36,7 @@ class BaseTest extends \PHPUnit_Framework_TestCase
         $request = $objectManager->get('Magento\TestFramework\Request');
 
         $this->assertInstanceOf('Magento\Framework\App\ActionInterface', $this->_model->match($request));
-        $request->setRequestUri('core/index/index');
+        $request->setRequestUri('framework/index/index');
         $this->assertInstanceOf('Magento\Framework\App\ActionInterface', $this->_model->match($request));
 
         $request->setPathInfo(
@@ -54,8 +54,8 @@ class BaseTest extends \PHPUnit_Framework_TestCase
     public function testGetControllerClassName()
     {
         $this->assertEquals(
-            'Magento\Core\Controller\Index',
-            $this->_model->getActionClassName('Magento_Core', 'index')
+            'Magento\Framework\Controller\Index',
+            $this->_model->getActionClassName('Magento_Framework', 'index')
         );
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/Framework/DB/Adapter/InterfaceTest.php b/dev/tests/integration/testsuite/Magento/Framework/DB/Adapter/InterfaceTest.php
index 5e0219f68f0e24e94bc092ddbbd2952743131bf8..ff713ae85f28f53df39201f3708adb5146b5a67b 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/DB/Adapter/InterfaceTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/DB/Adapter/InterfaceTest.php
@@ -38,7 +38,7 @@ class InterfaceTest extends \PHPUnit_Framework_TestCase
             '\Magento\Framework\Setup\ModuleDataSetupInterface',
             [
                 'resourceName' => 'core_setup',
-                'moduleName' => 'Magento_Core'
+                'moduleName' => 'Magento_Test'
             ]
         );
         $this->_connection = $installer->getConnection();
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/Resource/HelperTest.php b/dev/tests/integration/testsuite/Magento/Framework/DB/HelperTest.php
similarity index 97%
rename from dev/tests/integration/testsuite/Magento/Core/Model/Resource/HelperTest.php
rename to dev/tests/integration/testsuite/Magento/Framework/DB/HelperTest.php
index 4cdb588557727e2f3dbcbbb04cab0d11346f117e..ee8a44e4644de8816b8e8ea63d6d612489866300 100644
--- a/dev/tests/integration/testsuite/Magento/Core/Model/Resource/HelperTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/DB/HelperTest.php
@@ -3,7 +3,7 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Core\Model\Resource;
+namespace Magento\Framework\DB;
 
 class HelperTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/dev/tests/integration/testsuite/Magento/Framework/Session/SaveHandler/DbTableTest.php b/dev/tests/integration/testsuite/Magento/Framework/Session/SaveHandler/DbTableTest.php
index d1edb2e3599d44b28e9984b7b1ee0265dd978ef4..12dbfcb466dd269a9cff5b572ad706d21704a9b8 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/Session/SaveHandler/DbTableTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/Session/SaveHandler/DbTableTest.php
@@ -83,7 +83,7 @@ class DbTableTest extends \PHPUnit_Framework_TestCase
         /** @var $resource \Magento\Framework\App\Resource */
         $resource = $this->_objectManager->get('Magento\Framework\App\Resource');
         $this->_connection = $resource->getConnection('core_write');
-        $this->_sessionTable = $resource->getTableName('core_session');
+        $this->_sessionTable = $resource->getTableName('session');
 
         // session stores serialized objects with protected properties
         // we need to test this case to ensure that DB adapter successfully processes "\0" symbols in serialized data
diff --git a/dev/tests/integration/testsuite/Magento/Framework/Translate/_files/_translation_data.php b/dev/tests/integration/testsuite/Magento/Framework/Translate/_files/_translation_data.php
index 002e59c5aa2e3a96abf8d250df92ec30ce5b5f8f..2fc1a5ff1eddb8863e2c2b3039bc40721710219f 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/Translate/_files/_translation_data.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/Translate/_files/_translation_data.php
@@ -5,8 +5,8 @@
  */
 ?>
 <?php return [
-    'Original value for Magento_Core module' => 'Translated value for Magento_Core module',
-    'Magento_Core::Text with different translation on different modules' => 'Text translation by Magento_Core module',
+    'Original value for Magento_Store module' => 'Translated value for Magento_Store module',
+    'Magento_Store::Text with different translation on different modules' => 'Text translation by Magento_Store module',
     'Some non-translated value for Magento_Catalog' => 'Translation for some value for Magento_Catalog',
     'Another non-translated value for Magento_Catalog' => 'Translation for another value for Magento_Catalog',
     'Magento_Catalog::Text with different translation on different modules' =>
diff --git a/dev/tests/integration/testsuite/Magento/Framework/TranslateTest.php b/dev/tests/integration/testsuite/Magento/Framework/TranslateTest.php
index 44d7f7ab3c101a65c1a98ba1f62fbf30d126d5d9..da1d8586a1f3939fd1da8e9673a3aff77b632b6f 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/TranslateTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/TranslateTest.php
@@ -40,11 +40,15 @@ class TranslateTest extends \PHPUnit_Framework_TestCase
 
         /** @var $moduleReader \Magento\Framework\Module\Dir\Reader */
         $moduleReader = $objectManager->get('Magento\Framework\Module\Dir\Reader');
-        $moduleReader->setModuleDir('Magento_Core', 'i18n', dirname(__DIR__) . '/Core/Model/_files/Magento/Core/i18n');
+        $moduleReader->setModuleDir(
+            'Magento_Store',
+            'i18n',
+            dirname(__DIR__) . '/Translation/Model/_files/Magento/Store/i18n'
+        );
         $moduleReader->setModuleDir(
             'Magento_Catalog',
             'i18n',
-            dirname(__DIR__) . '/Core/Model/_files/Magento/Catalog/i18n'
+            dirname(__DIR__) . '/Translation/Model/_files/Magento/Catalog/i18n'
         );
 
         /** @var \Magento\Theme\Model\View\Design $designModel */
diff --git a/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php b/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php
index 569cd212239ee78cf3ddb8cf4f0d9c82ee79e5aa..1c77630c6661588ad5d1cf1fe71f1a1eb5b01041 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php
+++ b/dev/tests/integration/testsuite/Magento/Framework/View/Element/AbstractBlockTest.php
@@ -35,7 +35,7 @@ class AbstractBlockTest extends \PHPUnit_Framework_TestCase
                 \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
                     'Magento\Framework\View\Element\Context'
                 ),
-                ['module_name' => 'Magento_Core']
+                ['module_name' => 'Magento_Theme']
             ]
         );
     }
@@ -483,8 +483,8 @@ class AbstractBlockTest extends \PHPUnit_Framework_TestCase
 
     public function testGetModuleName()
     {
-        $this->assertEquals('Magento_Core', $this->_block->getModuleName());
-        $this->assertEquals('Magento_Core', $this->_block->getData('module_name'));
+        $this->assertEquals('Magento_Theme', $this->_block->getModuleName());
+        $this->assertEquals('Magento_Theme', $this->_block->getData('module_name'));
     }
 
     /**
@@ -619,7 +619,7 @@ class AbstractBlockTest extends \PHPUnit_Framework_TestCase
                     \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
                         'Magento\Framework\View\Element\Context'
                     ),
-                    ['module_name' => 'Magento_Core']
+                    ['module_name' => 'Magento_Theme']
                 ],
                 $mockClass
             );
diff --git a/dev/tests/integration/testsuite/Magento/Framework/View/_files/layout_directives_test/arguments_object_type_updaters.xml b/dev/tests/integration/testsuite/Magento/Framework/View/_files/layout_directives_test/arguments_object_type_updaters.xml
index b98084ad88f5ff7b1ba15141e58e7cb75efbd25e..f713bfb8bbfada6a5ead86f955e09bd99196eafb 100644
--- a/dev/tests/integration/testsuite/Magento/Framework/View/_files/layout_directives_test/arguments_object_type_updaters.xml
+++ b/dev/tests/integration/testsuite/Magento/Framework/View/_files/layout_directives_test/arguments_object_type_updaters.xml
@@ -8,7 +8,7 @@
 <layout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_layout.xsd">
     <block class="Magento\Framework\View\Element\Text" name="block_with_object_updater_args">
         <arguments>
-            <argument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="one" xsi:type="object">Magento\Core\Model\DataSource</argument>
+            <argument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="one" xsi:type="object">Magento\Store\Model\DataSource</argument>
             <argument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="two" xsi:type="number">0</argument>
         </arguments>
     </block>
diff --git a/dev/tests/integration/testsuite/Magento/Newsletter/Model/TemplateTest.php b/dev/tests/integration/testsuite/Magento/Newsletter/Model/TemplateTest.php
index 8eadd1a288a00ca7b217547c55c3fd42b0c9006c..d501af84c4c26266dff6331a627d6ab1aad6dd30 100644
--- a/dev/tests/integration/testsuite/Magento/Newsletter/Model/TemplateTest.php
+++ b/dev/tests/integration/testsuite/Magento/Newsletter/Model/TemplateTest.php
@@ -6,7 +6,7 @@
 namespace Magento\Newsletter\Model;
 
 /**
- * @magentoDataFixture Magento/Core/_files/store.php
+ * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
  */
 class TemplateTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/dev/tests/integration/testsuite/Magento/Newsletter/_files/subscribers.php b/dev/tests/integration/testsuite/Magento/Newsletter/_files/subscribers.php
index fe3cc067ec3e18690865de39ee50aaf7c9e90988..470db3b9ad92d926c1f1f75b72446c3bc63cc1f3 100644
--- a/dev/tests/integration/testsuite/Magento/Newsletter/_files/subscribers.php
+++ b/dev/tests/integration/testsuite/Magento/Newsletter/_files/subscribers.php
@@ -4,7 +4,7 @@
  * See COPYING.txt for license details.
  */
 
-require __DIR__ . '/../../../Magento/Core/_files/store.php';
+require __DIR__ . '/../../../Magento/Store/_files/core_fixturestore.php';
 require __DIR__ . '/../../../Magento/Customer/_files/customer.php';
 
 $currentStore = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/order_fixture_store.php b/dev/tests/integration/testsuite/Magento/Sales/_files/order_fixture_store.php
index 6bbd0430c0bfc3f3a637465ea1aa9d5b30ea0d55..4d4c2d92a90b08fd8d132090fde771ca1d8a5261 100644
--- a/dev/tests/integration/testsuite/Magento/Sales/_files/order_fixture_store.php
+++ b/dev/tests/integration/testsuite/Magento/Sales/_files/order_fixture_store.php
@@ -6,7 +6,7 @@
 
 // @codingStandardsIgnoreFile
 
-require __DIR__ . '/../../../Magento/Core/_files/store.php';
+require __DIR__ . '/../../../Magento/Store/_files/core_fixturestore.php';
 
 require __DIR__ . '/../../../Magento/Catalog/_files/product_simple_duplicated.php';
 /** @var \Magento\Catalog\Model\Product $product */
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/DataSource.php b/dev/tests/integration/testsuite/Magento/Store/Model/DataSource.php
similarity index 89%
rename from dev/tests/integration/testsuite/Magento/Core/Model/DataSource.php
rename to dev/tests/integration/testsuite/Magento/Store/Model/DataSource.php
index 8daa1aa1cdc27b0c33d1e0ea30182300f63a5cc1..4b9dcd8c763a8e2fea99630e4e31ca9b85861e9d 100644
--- a/dev/tests/integration/testsuite/Magento/Core/Model/DataSource.php
+++ b/dev/tests/integration/testsuite/Magento/Store/Model/DataSource.php
@@ -3,7 +3,7 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Core\Model;
+namespace Magento\Store\Model;
 
 /**
  * Dummy layout argument data source object
@@ -31,7 +31,7 @@ class DataSource extends \Magento\Framework\Data\Collection
      * Set updater calls
      *
      * @param array $calls
-     * @return \Magento\Core\Model\DataSource
+     * @return \Magento\Store\Model\DataSource
      */
     public function setUpdaterCall(array $calls)
     {
diff --git a/dev/tests/integration/testsuite/Magento/Core/_files/store.php b/dev/tests/integration/testsuite/Magento/Store/_files/core_fixturestore.php
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Core/_files/store.php
rename to dev/tests/integration/testsuite/Magento/Store/_files/core_fixturestore.php
diff --git a/dev/tests/integration/testsuite/Magento/Core/_files/second_third_store.php b/dev/tests/integration/testsuite/Magento/Store/_files/core_second_third_fixturestore.php
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Core/_files/second_third_store.php
rename to dev/tests/integration/testsuite/Magento/Store/_files/core_second_third_fixturestore.php
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/Parser/Composer/JsonTest.php b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/Parser/Composer/JsonTest.php
index 9a5cfc24ba9a3af8ee7be4996398de7291ed8b85..684c24f7b933bf7999ce97c835b851d8140e98a4 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/Parser/Composer/JsonTest.php
+++ b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/Parser/Composer/JsonTest.php
@@ -32,7 +32,6 @@ class JsonTest extends \PHPUnit_Framework_TestCase
             [
                 'name' => 'magento/module-module1',
                 'dependencies' => [
-                    ['module' => 'magento/module-core', 'type' => 'hard'],
                     ['module' => 'magento/module-module2', 'type' => 'hard'],
                     ['module' => 'magento/module-backend', 'type' => 'soft'],
                 ],
@@ -40,7 +39,6 @@ class JsonTest extends \PHPUnit_Framework_TestCase
             [
                 'name' => 'magento/module-module2',
                 'dependencies' => [
-                    ['module' => 'magento/module-core', 'type' => 'hard'],
                     ['module' => 'magento/module-module3', 'type' => 'hard'],
                 ]
             ],
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer1.json b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer1.json
index aa86499218364dd7e01ff62d8f33c9951ad10deb..14b92acc4f7ac59ba502c7da3d92c7d2c98b4997 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer1.json
+++ b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer1.json
@@ -3,7 +3,6 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-core": "0.1.0-alpha103",
         "magento/module-module2": "0.1.0-alpha103"
     },
     "suggest": {
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer2.json b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer2.json
index ee1f92ce06fdb65ceadaba97380a02370970ac80..ba14f37abc9f2fc85fd3bac276745c96c9ef4cef 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer2.json
+++ b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer2.json
@@ -3,7 +3,6 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-core": "0.1.0-alpha103",
         "magento/module-module3": "0.1.0-alpha103"
     },
     "type": "magento2-module",
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer4.json b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer4.json
index 7d6f1156608810b2570475de76a28ad49cdecf97..3f6b5173c8b4ea7fdd131bfa634f408b1d47b9fb 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer4.json
+++ b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer4.json
@@ -3,7 +3,6 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-core": "0.1.0-alpha103",
         "magento/module-module2": "0.1.0-alpha103"
     },
     "type": "magento2-module",
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer5.json b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer5.json
index 39685bcd994940866add3ad1d420483683a5a769..cb9d044436befb0593a3f8e2c98e9d8c3c5dace4 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer5.json
+++ b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/composer5.json
@@ -3,7 +3,6 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-core": "0.1.0-alpha103",
         "magento/module-module1": "0.1.0-alpha103"
     },
     "type": "magento2-module",
diff --git a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/expected/dependencies.csv b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/expected/dependencies.csv
index afdc023ce7ecb1e3f47ae390846aa1f7df678a9d..bce8d9c13d29ac3ac3e983a635069e2170a3d6bf 100644
--- a/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/expected/dependencies.csv
+++ b/dev/tests/integration/testsuite/Magento/Test/Tools/Dependency/_files/expected/dependencies.csv
@@ -1,12 +1,10 @@
 "";"All";"Hard";"Soft"
-"Total number of dependencies";"5";"4";"1"
+"Total number of dependencies";"3";"2";"1"
 
 "Dependencies for each module:";"All";"Hard";"Soft"
-"magento/module-module1";"3";"2";"1"
-" -- magento/module-core";"";"1";"0"
+"magento/module-module1";"2";"1";"1"
 " -- magento/module-module2";"";"1";"0"
 " -- magento/module-backend";"";"0";"1"
 
-"magento/module-module2";"2";"2";"0"
-" -- magento/module-core";"";"1";"0"
+"magento/module-module2";"1";"1";"0"
 " -- magento/module-module3";"";"1";"0"
diff --git a/dev/tests/integration/testsuite/Magento/Theme/Model/View/DesignTest.php b/dev/tests/integration/testsuite/Magento/Theme/Model/View/DesignTest.php
index 2fe398ded09e7e0de078b09ffbb481f0f927fd22..4eec44f4a23449fd83b217e2dcd5f3b8470895de 100644
--- a/dev/tests/integration/testsuite/Magento/Theme/Model/View/DesignTest.php
+++ b/dev/tests/integration/testsuite/Magento/Theme/Model/View/DesignTest.php
@@ -126,7 +126,7 @@ class DesignTest extends \PHPUnit_Framework_TestCase
     /**
      * @magentoConfigFixture current_store design/theme/theme_id one
      * @magentoConfigFixture fixturestore_store design/theme/theme_id two
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      */
     public function testGetConfigurationDesignThemeStore()
     {
diff --git a/dev/tests/integration/testsuite/Magento/Theme/Model/_files/design/frontend/Test/default/etc/view.xml b/dev/tests/integration/testsuite/Magento/Theme/Model/_files/design/frontend/Test/default/etc/view.xml
index bbc87835a04fd3ce6965ee5f3ce05ba0b006375c..61d0514d8ae95c2aecbffd5df1445d98ab869c70 100644
--- a/dev/tests/integration/testsuite/Magento/Theme/Model/_files/design/frontend/Test/default/etc/view.xml
+++ b/dev/tests/integration/testsuite/Magento/Theme/Model/_files/design/frontend/Test/default/etc/view.xml
@@ -6,8 +6,8 @@
  */
 -->
 <view xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../../lib/internal/Magento/Framework/Config/etc/view.xsd">
-    <vars module="Magento_Core">
-        <var name="var1">Core Value1</var>
+    <vars module="Magento_Store">
+        <var name="var1">Store Value1</var>
     </vars>
     <vars module="Namespace_Module">
         <var name="var1">value1</var>
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/Magento/Catalog/i18n/en_US.csv b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/Magento/Catalog/i18n/en_US.csv
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/Magento/Catalog/i18n/en_US.csv
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/Magento/Catalog/i18n/en_US.csv
diff --git a/dev/tests/integration/testsuite/Magento/Translation/Model/_files/Magento/Store/i18n/en_AU.csv b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/Magento/Store/i18n/en_AU.csv
new file mode 100644
index 0000000000000000000000000000000000000000..6a8d6d9f0ef953317d8b2a0cd6527e0a995fb97f
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/Magento/Store/i18n/en_AU.csv
@@ -0,0 +1 @@
+"Original value for Magento_Store module","Translated value for Magento_Store module in en_AU"
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/Magento/Core/i18n/en_UK.csv b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/Magento/Store/i18n/en_UK.csv
similarity index 59%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/Magento/Core/i18n/en_UK.csv
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/Magento/Store/i18n/en_UK.csv
index 49355d289e411b75539bbb275addbc770672e169..94f7f1ba263a29cc5907b327a421faccc6fefd56 100644
--- a/dev/tests/integration/testsuite/Magento/Core/Model/_files/Magento/Core/i18n/en_UK.csv
+++ b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/Magento/Store/i18n/en_UK.csv
@@ -1 +1 @@
-"Text with different translation on different modules","Text translation by Magento_Core module in en_UK"
+"Text with different translation on different modules","Text translation by Magento_Store module in en_UK"
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/Magento/Core/i18n/en_US.csv b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/Magento/Store/i18n/en_US.csv
similarity index 54%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/Magento/Core/i18n/en_US.csv
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/Magento/Store/i18n/en_US.csv
index a1e746bfeb758850e05e321110c4ef911d67025c..2ccaf17120470b3369ff0e6c6fe9c28acda7b0c2 100644
--- a/dev/tests/integration/testsuite/Magento/Core/Model/_files/Magento/Core/i18n/en_US.csv
+++ b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/Magento/Store/i18n/en_US.csv
@@ -1,3 +1,3 @@
 "%s","%s"
-"Original value for Magento_Core module","Translated value for Magento_Core module"
+"Original value for Magento_Store module","Translated value for Magento_Store module"
 "Text with different translation on different modules","Text translation that was last loaded"
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/local_config/custom/local.xml b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/local_config/custom/local.xml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/local_config/custom/local.xml
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/local_config/custom/local.xml
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/local_config/custom/prohibited.filename.xml b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/local_config/custom/prohibited.filename.xml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/local_config/custom/prohibited.filename.xml
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/local_config/custom/prohibited.filename.xml
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/local_config/local.xml b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/local_config/local.xml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/local_config/local.xml
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/local_config/local.xml
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/local_config/z.xml b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/local_config/z.xml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/local_config/z.xml
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/local_config/z.xml
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/no_local_config/a.xml b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/no_local_config/a.xml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/no_local_config/a.xml
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/no_local_config/a.xml
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/no_local_config/b.xml b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/no_local_config/b.xml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/no_local_config/b.xml
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/no_local_config/b.xml
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/no_local_config/custom/local.xml b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/no_local_config/custom/local.xml
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/local_config/no_local_config/custom/local.xml
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/local_config/no_local_config/custom/local.xml
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/locale/en_AU/config.xml b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/locale/en_AU/config.xml
similarity index 92%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/locale/en_AU/config.xml
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/locale/en_AU/config.xml
index d8a6cc64835de174524404991954e587c38f1fb5..97d3c799a4ee00613bab6e86f08c9c80d6c69a7f 100644
--- a/dev/tests/integration/testsuite/Magento/Core/Model/_files/locale/en_AU/config.xml
+++ b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/locale/en_AU/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Store/etc/config.xsd">
     <default>
         <locale>
             <inheritance>
diff --git a/dev/tests/integration/testsuite/Magento/Core/Model/_files/media/some_file.txt b/dev/tests/integration/testsuite/Magento/Translation/Model/_files/media/some_file.txt
similarity index 100%
rename from dev/tests/integration/testsuite/Magento/Core/Model/_files/media/some_file.txt
rename to dev/tests/integration/testsuite/Magento/Translation/Model/_files/media/some_file.txt
diff --git a/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Catalog/Edit/FormTest.php b/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Catalog/Edit/FormTest.php
index a17d3e18b9174680f40178c19876ce7e06707eb0..d4780d259aafb1213be6b66d7b5329f425ebea5a 100644
--- a/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Catalog/Edit/FormTest.php
+++ b/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Catalog/Edit/FormTest.php
@@ -88,7 +88,7 @@ class FormTest extends \PHPUnit_Framework_TestCase
      *
      * @dataProvider getEntityStoresDataProvider
      * @magentoAppIsolation enabled
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      *
      * @param array $productData
      * @param array $categoryData
@@ -117,7 +117,7 @@ class FormTest extends \PHPUnit_Framework_TestCase
      * Check exception is thrown when product does not associated with stores
      *
      * @magentoAppIsolation enabled
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      */
     public function testGetEntityStoresProductStoresException()
     {
@@ -139,7 +139,7 @@ class FormTest extends \PHPUnit_Framework_TestCase
      * Check exception is thrown when product stores in intersection with category stores is empty
      *
      * @magentoAppIsolation enabled
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      *
      */
     public function testGetEntityStoresProductCategoryStoresException()
@@ -166,7 +166,7 @@ class FormTest extends \PHPUnit_Framework_TestCase
      * Check exception is thrown when category does not associated with stores
      *
      * @magentoAppIsolation enabled
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      */
     public function testGetEntityStoresCategoryStoresException()
     {
diff --git a/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Cms/Page/Edit/FormTest.php b/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Cms/Page/Edit/FormTest.php
index 8e95b21be5814e048e8696cee33156c0462ec85b..8eb255b89d94b35401db85052a114f4fc2577567 100644
--- a/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Cms/Page/Edit/FormTest.php
+++ b/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Cms/Page/Edit/FormTest.php
@@ -70,7 +70,7 @@ class FormTest extends \PHPUnit_Framework_TestCase
      * Test entity stores
      *
      * @magentoAppIsolation enabled
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      */
     public function testGetEntityStores()
     {
@@ -91,7 +91,7 @@ class FormTest extends \PHPUnit_Framework_TestCase
      * Check exception is thrown when product does not associated with stores
      *
      * @magentoAppIsolation enabled
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      */
     public function testGetEntityStoresProductStoresException()
     {
diff --git a/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Cms/Page/GridTest.php b/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Cms/Page/GridTest.php
index cd1827579b22945d145266e0305afa8b43ed59f8..a201e3105ae79dd598267cc054d3b20562e80225 100644
--- a/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Cms/Page/GridTest.php
+++ b/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Cms/Page/GridTest.php
@@ -48,7 +48,7 @@ class GridTest extends \PHPUnit_Framework_TestCase
     /**
      * Test prepare grid when there is more than one store
      *
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      */
     public function testPrepareGridForMultipleStores()
     {
diff --git a/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Edit/FormTest.php b/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Edit/FormTest.php
index 18382c4b69f1ee450254ff283e22e4535c406aeb..570e42dad7dba858baa7751723d99604414b46b6 100644
--- a/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Edit/FormTest.php
+++ b/dev/tests/integration/testsuite/Magento/UrlRewrite/Block/Edit/FormTest.php
@@ -116,7 +116,7 @@ class FormTest extends \PHPUnit_Framework_TestCase
      * Test store selection is available and correctly configured
      *
      * @magentoAppIsolation enabled
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      */
     public function testStoreElementMultiStores()
     {
diff --git a/dev/tests/integration/testsuite/Magento/Webapi/Controller/PathProcessorTest.php b/dev/tests/integration/testsuite/Magento/Webapi/Controller/PathProcessorTest.php
index 268d2274beb25c2963d630b095a290f4af542ce0..f9f6ceda847cd08e413b946714077ae302d69e57 100644
--- a/dev/tests/integration/testsuite/Magento/Webapi/Controller/PathProcessorTest.php
+++ b/dev/tests/integration/testsuite/Magento/Webapi/Controller/PathProcessorTest.php
@@ -26,7 +26,7 @@ class PathProcessorTest extends \PHPUnit_Framework_TestCase
     }
 
     /**
-     * @magentoDataFixture Magento/Core/_files/store.php
+     * @magentoDataFixture Magento/Store/_files/core_fixturestore.php
      */
     public function testProcessWithValidStoreCode()
     {
diff --git a/dev/tests/integration/testsuite/Magento/Webapi/Model/Config/_files/webapi.php b/dev/tests/integration/testsuite/Magento/Webapi/Model/Config/_files/webapi.php
index 94e740210165ddea0a721a2700e0be52586cd79a..07d9d098ce8c23ec611478dec332941a46befac9 100644
--- a/dev/tests/integration/testsuite/Magento/Webapi/Model/Config/_files/webapi.php
+++ b/dev/tests/integration/testsuite/Magento/Webapi/Model/Config/_files/webapi.php
@@ -5,52 +5,117 @@
  */
 return [
     'services' => [
-        'Magento\TestModule1\Service\V1\AllSoapAndRestInterface' => [
-            'item' => [
-                'resources' => [
-                    'Magento_Test1::resource1',
+        'Magento\TestModuleMSC\Api\AllSoapAndRestInterface' => [
+            'V1' => [
+                'methods' => [
+                    'item' => [
+                        'resources' => [
+                            'Magento_TestModuleMSC::resource1',
+                        ],
+                        'secure' => false,
+                    ],
+                    'create' => [
+                        'resources' => [
+                            'Magento_TestModuleMSC::resource3',
+                        ],
+                        'secure' => false,
+                    ],
                 ],
-                'secure' => false,
             ],
-            'create' => [
-                'resources' => [
-                    'Magento_Test1::resource1',
+            'V2' => [
+                'methods' => [
+                    'getPreconfiguredItem' => [
+                        'resources' => [
+                            'Magento_TestModuleMSC::resource1',
+                            'Magento_TestModuleMSC::resource2',
+                        ],
+                        'secure' => false,
+                    ],
                 ],
-                'secure' => false,
             ],
         ],
-        'Magento\TestModule1\Service\V2\AllSoapAndRestInterface' => [
-            'item' => [
-                'resources' => [
-                    'Magento_Test1::resource1',
-                    'Magento_Test1::resource2',
+        'Magento\TestModule1\Service\V1\AllSoapAndRestInterface' => [
+            'V1' => [
+                'methods' => [
+                    'item' => [
+                        'resources' => [
+                            'Magento_Test1::resource1',
+                        ],
+                        'secure' => false,
+                    ],
+                    'create' => [
+                        'resources' => [
+                            'Magento_Test1::resource1',
+                        ],
+                        'secure' => false,
+                    ],
                 ],
-                'secure' => false,
             ],
-            'create' => [
-                'resources' => [
-                    'Magento_Test1::resource1',
-                    'Magento_Test1::resource2',
+        ],
+        'Magento\TestModule1\Service\V2\AllSoapAndRestInterface' => [
+            'V2' => [
+                'methods' => [
+                    'item' => [
+                        'resources' => [
+                            'Magento_Test1::resource1',
+                            'Magento_Test1::resource2',
+                        ],
+                        'secure' => false,
+                    ],
+                    'create' => [
+                        'resources' => [
+                            'Magento_Test1::resource1',
+                            'Magento_Test1::resource2',
+                        ],
+                        'secure' => false,
+                    ],
+                    'delete' => [
+                        'resources' => [
+                            'Magento_Test1::resource1',
+                            'Magento_Test1::resource2',
+                        ],
+                        'secure' => false,
+                    ],
+                    'update' => [
+                        'resources' => [
+                            'Magento_Test1::resource1',
+                            'Magento_Test1::resource2',
+                        ],
+                        'secure' => false,
+                    ],
                 ],
-                'secure' => false,
             ],
-            'delete' => [
+        ],
+    ],
+    'routes' => [
+        '/V1/testmoduleMSC/:itemId' => [
+            'GET' => [
+                'secure' => false,
+                'service' => [
+                    'class' => 'Magento\TestModuleMSC\Api\AllSoapAndRestInterface',
+                    'method' => 'item',
+                ],
                 'resources' => [
-                    'Magento_Test1::resource1',
-                    'Magento_Test1::resource2',
+                    'Magento_TestModuleMSC::resource1' => true,
+                ],
+                'parameters' => [
                 ],
-                'secure' => false,
             ],
-            'update' => [
+        ],
+        '/V1/testmoduleMSC' => [
+            'POST' => [
+                'secure' => false,
+                'service' => [
+                    'class' => 'Magento\TestModuleMSC\Api\AllSoapAndRestInterface',
+                    'method' => 'create',
+                ],
                 'resources' => [
-                    'Magento_Test1::resource1',
-                    'Magento_Test1::resource2',
+                    'Magento_TestModuleMSC::resource3' => true,
+                ],
+                'parameters' => [
                 ],
-                'secure' => false,
             ],
         ],
-    ],
-    'routes' => [
         '/V1/testmodule1/:id' => [
             'GET' => [
                 'secure' => false,
@@ -143,5 +208,19 @@ return [
                 ],
             ],
         ],
+        '/V2/testmoduleMSC/itemPreconfigured' => [
+            'GET' => [
+                'secure' => false,
+                'service' => [
+                    'class' => 'Magento\TestModuleMSC\Api\AllSoapAndRestInterface',
+                    'method' => 'getPreconfiguredItem',
+                ],
+                'resources' => [
+                    'Magento_TestModuleMSC::resource1' => true,
+                    'Magento_TestModuleMSC::resource2' => true,
+                ],
+                'parameters' => [],
+            ]
+        ]
     ],
 ];
diff --git a/dev/tests/integration/testsuite/Magento/Webapi/Model/Config/_files/webapiA.xml b/dev/tests/integration/testsuite/Magento/Webapi/Model/Config/_files/webapiA.xml
index cd41f812c4e2be5a32998e94b10cf5cf347e9446..f3e03397766b885725a1f8bd1c1ff1e524659952 100644
--- a/dev/tests/integration/testsuite/Magento/Webapi/Model/Config/_files/webapiA.xml
+++ b/dev/tests/integration/testsuite/Magento/Webapi/Model/Config/_files/webapiA.xml
@@ -37,4 +37,23 @@
             <resource ref="Magento_Test1::resource2"/>
         </resources>
     </route>
+    <route method="GET" url="/V1/testmoduleMSC/:itemId">
+        <service class="Magento\TestModuleMSC\Api\AllSoapAndRestInterface" method="item" />
+        <resources>
+            <resource ref="Magento_TestModuleMSC::resource1" />
+        </resources>
+    </route>
+    <route method="POST" url="/V1/testmoduleMSC">
+        <service class="Magento\TestModuleMSC\Api\AllSoapAndRestInterface" method="create" />
+        <resources>
+            <resource ref="Magento_TestModuleMSC::resource3" />
+        </resources>
+    </route>
+    <route method="GET" url="/V2/testmoduleMSC/itemPreconfigured">
+        <service class="Magento\TestModuleMSC\Api\AllSoapAndRestInterface" method="getPreconfiguredItem" />
+        <resources>
+            <resource ref="Magento_TestModuleMSC::resource1" />
+            <resource ref="Magento_TestModuleMSC::resource2" />
+        </resources>
+    </route>
 </routes>
diff --git a/dev/tests/integration/testsuite/Magento/Webapi/ServiceNameCollisionTest.php b/dev/tests/integration/testsuite/Magento/Webapi/ServiceNameCollisionTest.php
index 09014548e5d8ea81e5855ad4104ddcabd693e0db..f568c3b307889a7b06d352ddbe6c0676d649a606 100644
--- a/dev/tests/integration/testsuite/Magento/Webapi/ServiceNameCollisionTest.php
+++ b/dev/tests/integration/testsuite/Magento/Webapi/ServiceNameCollisionTest.php
@@ -11,6 +11,8 @@
  */
 namespace Magento\Webapi;
 
+use Magento\Webapi\Model\Config\Converter;
+
 class ServiceNameCollisionTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -28,10 +30,12 @@ class ServiceNameCollisionTest extends \PHPUnit_Framework_TestCase
         $webapiConfig = $objectManager->get('Magento\Webapi\Model\Config');
         $serviceNames = [];
 
-        foreach (array_keys($webapiConfig->getServices()['services']) as $serviceClassName) {
-            $newServiceName = $soapConfig->getServiceName($serviceClassName);
-            $this->assertFalse(in_array($newServiceName, $serviceNames));
-            $serviceNames[] = $newServiceName;
+        foreach ($webapiConfig->getServices()[Converter::KEY_SERVICES] as $serviceClassName => $serviceVersionData) {
+            foreach ($serviceVersionData as $version => $serviceData) {
+                $newServiceName = $soapConfig->getServiceName($serviceClassName, $version);
+                $this->assertFalse(in_array($newServiceName, $serviceNames));
+                $serviceNames[] = $newServiceName;
+            }
         }
     }
 }
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/Readme/_files/blacklist/ce.txt b/dev/tests/static/testsuite/Magento/Test/Integrity/Readme/_files/blacklist/ce.txt
index f40e2c359dd6cde8fc5f09356449321942624091..2fd6ad123621cb9b830d5d02b3840463d4520fbc 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/Readme/_files/blacklist/ce.txt
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/Readme/_files/blacklist/ce.txt
@@ -2,7 +2,6 @@ app/code/Magento/CatalogImportExport
 app/code/Magento/CatalogUrlRewrite
 app/code/Magento/CmsUrlRewrite
 app/code/Magento/ConfigurableImportExport
-app/code/Magento/Core
 app/code/Magento/Doc
 app/code/Magento/GroupedImportExport
 app/code/Magento/Msrp
diff --git a/dev/tests/static/testsuite/Magento/Test/Integrity/_files/dependency_test/tables_ce.php b/dev/tests/static/testsuite/Magento/Test/Integrity/_files/dependency_test/tables_ce.php
index 5835ae6946b08aeecd0e4fe60b8436f88fb4f610..1ae037a2b477a3957cc658ecdac90f7e737eef1e 100644
--- a/dev/tests/static/testsuite/Magento/Test/Integrity/_files/dependency_test/tables_ce.php
+++ b/dev/tests/static/testsuite/Magento/Test/Integrity/_files/dependency_test/tables_ce.php
@@ -106,16 +106,11 @@ return [
     'cms_block_store'                             => 'Magento\Cms',
     'cms_page'                                    => 'Magento\Cms',
     'cms_page_store'                              => 'Magento\Cms',
-    'core_cache'                                  => 'Magento\Core',
-    'core_cache_tag'                              => 'Magento\Core',
-    'core_config_data'                            => 'Magento\Core',
-    'core_config_field'                           => 'Magento\Core',
-    'design_change'                               => 'Magento\Core',
-    'media_storage_directory_storage'                      => 'Magento\Core',
-    'core_email_template'                         => 'Magento\Core',
-    'media_storage_file_storage'                           => 'Magento\Core',
-    'core_flag'                                   => 'Magento\Core',
-    'core_session'                                => 'Magento\Core',
+    'core_config_data'                            => 'Magento\Config',
+    'design_change'                               => 'Magento\Theme',
+    'media_storage_directory_storage'             => 'Magento\MediaStorage',
+    'email_template'                              => 'Magento\Email',
+    'media_storage_file_storage'                  => 'Magento\MediaStorage',
     'store'                                       => 'Magento\Store',
     'store_group'                                 => 'Magento\Store',
     'store_website'                               => 'Magento\Store',
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/PluginScannerTest.php b/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/PluginScannerTest.php
index 5f1d6f4b093b8f5683a9ed17d4aecf012206b2c7..adc1ebf2eaa69c83ebad7a3bba9926d09141ac49 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/PluginScannerTest.php
+++ b/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/PluginScannerTest.php
@@ -3,6 +3,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Tools\Di\Test\Unit\Code\Scanner;
 
 class PluginScannerTest extends \PHPUnit_Framework_TestCase
@@ -25,7 +28,7 @@ class PluginScannerTest extends \PHPUnit_Framework_TestCase
     public function testCollectEntities()
     {
         $actual = $this->_model->collectEntities($this->_testFiles);
-        $expected = ['Magento\Framework\App\Cache\TagPlugin', 'Magento\Core\Model\Action\Plugin'];
+        $expected = ['Magento\Framework\App\Cache\TagPlugin', 'Magento\Store\Model\Action\Plugin'];
         $this->assertEquals($expected, $actual);
     }
 }
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/XmlScannerTest.php b/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/XmlScannerTest.php
index b0dde77698a5b0e25b62cea423d959f616735628..76a1e87268f3b32b048326ffc2db3bf9ce26bf53 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/XmlScannerTest.php
+++ b/dev/tools/Magento/Tools/Di/Test/Unit/Code/Scanner/XmlScannerTest.php
@@ -3,6 +3,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Tools\Di\Test\Unit\Code\Scanner;
 
 class XmlScannerTest extends \PHPUnit_Framework_TestCase
@@ -37,7 +40,7 @@ class XmlScannerTest extends \PHPUnit_Framework_TestCase
 
     public function testCollectEntities()
     {
-        $className = 'Magento\Core\Model\Config\Invalidator\Proxy';
+        $className = 'Magento\Store\Model\Config\Invalidator\Proxy';
         $this->_logMock->expects(
             $this->at(0)
         )->method(
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/etc/di.xml b/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/etc/di.xml
index 9e27e302529b55ca1826e7021f752f59024902bb..5466e9a385bc24a8e1766bf54613aae8c10701c1 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/etc/di.xml
+++ b/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/code/Magento/SomeModule/etc/di.xml
@@ -7,7 +7,7 @@
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
     <preference for="Magento\Framework\App\RequestInterface" type="Magento\Framework\App\Request\Http\Proxy" />
-    <preference for="Magento\Core\Model\Config\InvalidatorInterface" type="Magento\Core\Model\Config\Invalidator\Proxy" />
+    <preference for="Magento\Store\Model\Config\InvalidatorInterface" type="Magento\Store\Model\Config\Invalidator\Proxy" />
     <preference for="Magento\Framework\App\CacheInterface" type="Magento\Framework\App\Cache\Proxy" />
     <virtualType name="custom_cache_instance" type="Magento\Framework\App\Cache">
         <plugin name="tag" type="Magento\Framework\App\Cache\TagPlugin" />
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/config.xml b/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/config.xml
index 1a33cc70899009144bbab6efd95df5dd01f7b834..2197266b7f07fd276114725c09ba157f35d60c57 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/config.xml
+++ b/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/config.xml
@@ -6,5 +6,5 @@
  */
 -->
 <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-        xsi:noNamespaceSchemaLocation="../../../../../../../../../../../app/code/Magento/Core/etc/config.xsd">
+        xsi:noNamespaceSchemaLocation="../../../../../../../../../../../app/code/Magento/Store/etc/config.xsd">
 </config>
diff --git a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/di/config.xml b/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/di/config.xml
index 4661287ae38cb1271db8638c12366b57f3bd0919..8638b10700e02310375a9dc43efe0a89b50eb15d 100644
--- a/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/di/config.xml
+++ b/dev/tools/Magento/Tools/Di/Test/Unit/_files/app/etc/di/config.xml
@@ -15,7 +15,7 @@
         <arguments>
             <argument name="layoutFactory" xsi:type="object">customLayoutFactory</argument>
         </arguments>
-        <plugin name="first" type="Magento\Core\Model\Action\Plugin" />
+        <plugin name="first" type="Magento\Store\Model\Action\Plugin" />
     </type>
     <virtualType name="customStoreManagerProxy" type="Magento\Store\Model\StoreManager\Proxy" />
     <virtualType name="customLayoutFactory" type="Magento\Framework\View\LayoutFactory" />
diff --git a/dev/tools/Magento/Tools/Migration/factory_table_names/replace_ce.php b/dev/tools/Magento/Tools/Migration/factory_table_names/replace_ce.php
index 16a5a652c611981b722644302fd253217a6c3533..404a302306fe58864f083c64881fac381253eeb4 100644
--- a/dev/tools/Magento/Tools/Migration/factory_table_names/replace_ce.php
+++ b/dev/tools/Magento/Tools/Migration/factory_table_names/replace_ce.php
@@ -123,19 +123,18 @@ return [
     'cms/page' => 'cms_page',
     'cms/page_store' => 'cms_page_store',
     'compiler/configuration' => 'compiler_configuration',
-    'core/cache' => 'core_cache',
-    'core/cache_tag' => 'core_cache_tag',
+    'core/cache' => 'cache',
+    'core/cache_tag' => 'cache_tag',
     'core/config_data' => 'core_config_data',
-    'core/config_field' => 'core_config_field',
     'core/design_change' => 'design_change',
     'core/directory_storage' => 'media_storage_directory_storage',
-    'core/email_template' => 'core_email_template',
+    'core/email_template' => 'email_template',
     'core/file_storage' => 'media_storage_file_storage',
-    'core/flag' => 'core_flag',
+    'core/flag' => 'flag',
     'core/layout_link' => 'layout_link',
     'core/layout_update' => 'layout_update',
     'core_resource' => 'setup_module',
-    'core/session' => 'core_session',
+    'core/session' => 'session',
     'core/store' => 'store',
     'core/store_group' => 'store_group',
     'core/variable' => 'variable',
diff --git a/lib/internal/Magento/Framework/App/Cache/Frontend/Factory.php b/lib/internal/Magento/Framework/App/Cache/Frontend/Factory.php
index 16575b0885528edfab6ebf502e6ae5c8b692bf46..75f139317ba10653d759e95b7f7e41a7b6347fbe 100644
--- a/lib/internal/Magento/Framework/App/Cache/Frontend/Factory.php
+++ b/lib/internal/Magento/Framework/App/Cache/Frontend/Factory.php
@@ -303,10 +303,10 @@ class Factory
             return $this->_resource->getConnection('core_write');
         };
         $options['data_table_callback'] = function () {
-            return $this->_resource->getTableName('core_cache');
+            return $this->_resource->getTableName('cache');
         };
         $options['tags_table_callback'] = function () {
-            return $this->_resource->getTableName('core_cache_tag');
+            return $this->_resource->getTableName('cache_tag');
         };
         return $options;
     }
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/XsdTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/XsdTest.php
index 34400821cc90dc368b9fadad8020965c36af6dc6..3c54962e2f5966ad8409d78d8af371ab7711d073 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/XsdTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/XsdTest.php
@@ -21,7 +21,7 @@ class XsdTest extends \PHPUnit_Framework_TestCase
 
     protected function setUp()
     {
-        $this->_xsdSchema = BP . '/app/code/Magento/Core/etc/config.xsd';
+        $this->_xsdSchema = BP . '/app/code/Magento/Store/etc/config.xsd';
         $this->_xsdValidator = new \Magento\Framework\TestFramework\Unit\Utility\XsdValidator();
     }
 
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/config.xml b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/config.xml
index 64a48ac3e9498e535c60ff3e6f81737be6685dd2..c0d6f535bcaa634059f38914bce449b9b1929e67 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/config.xml
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Store/etc/config.xsd">
     <default>
         <payment>
             <payment_method>
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/initial_config1.xml b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/initial_config1.xml
index 36c221dcbfecab3a7afd7f726386d87477eb88aa..0268e0a19ea007e138ea3079dd4af00077b750a6 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/initial_config1.xml
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/initial_config1.xml
@@ -5,5 +5,5 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Store/etc/config.xsd">
 </config>
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/initial_config2.xml b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/initial_config2.xml
index 36c221dcbfecab3a7afd7f726386d87477eb88aa..0268e0a19ea007e138ea3079dd4af00077b750a6 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/initial_config2.xml
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/initial_config2.xml
@@ -5,5 +5,5 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Store/etc/config.xsd">
 </config>
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/invalid_config.xml b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/invalid_config.xml
index 07a89760bb4c4ef7a66d1fae4281121d2c34df91..803d1ef87c4d1471f6618fecf572ccde7dade9ce 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/invalid_config.xml
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/invalid_config.xml
@@ -5,6 +5,6 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Store/etc/config.xsd">
     <invalid></invalid>
 </config>
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/valid_config.xml b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/valid_config.xml
index e884c48e0f0ff95d386525c551d139cfb2c95d63..da8b5603b23f196a48eb04dea6d077e98acf1ed4 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/valid_config.xml
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Config/Initial/_files/valid_config.xml
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Core/etc/config.xsd">
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../../../../app/code/Magento/Store/etc/config.xsd">
     <default>
         <some></some>
     </default>
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/ReinitableConfigTest.php b/lib/internal/Magento/Framework/App/Test/Unit/ReinitableConfigTest.php
index c3e0a80553329159193d625c2dc2ec516cc58152..acd44af1d90654b77d62b2230fd3ce0c9dfe653f 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/ReinitableConfigTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/ReinitableConfigTest.php
@@ -3,6 +3,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Framework\App\Test\Unit;
 
 class ReinitableConfigTest extends \PHPUnit_Framework_TestCase
@@ -12,7 +15,7 @@ class ReinitableConfigTest extends \PHPUnit_Framework_TestCase
         $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
         $scopePool = $this->getMock('\Magento\Framework\App\Config\ScopePool', ['clean'], [], '', false);
         $scopePool->expects($this->once())->method('clean');
-        /** @var \Magento\Core\Model\ReinitableConfig $config */
+        /** @var \Magento\Framework\App\ReinitableConfig $config */
         $config = $helper->getObject('Magento\Framework\App\ReinitableConfig', ['scopePool' => $scopePool]);
         $this->assertInstanceOf('\Magento\Framework\App\Config\ReinitableConfigInterface', $config->reinit());
     }
diff --git a/app/code/Magento/Core/Test/Unit/Model/NoRouteHandlerListTest.php b/lib/internal/Magento/Framework/App/Test/Unit/Router/NoRouteHandlerListTest.php
similarity index 95%
rename from app/code/Magento/Core/Test/Unit/Model/NoRouteHandlerListTest.php
rename to lib/internal/Magento/Framework/App/Test/Unit/Router/NoRouteHandlerListTest.php
index 4673d2f03048c8ef4bb5c97c881eddf5b1771cae..23ae614a3673a52ea658c3770457b4b20f2a7fba 100644
--- a/app/code/Magento/Core/Test/Unit/Model/NoRouteHandlerListTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/Router/NoRouteHandlerListTest.php
@@ -3,7 +3,10 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Core\Test\Unit\Model;
+
+// @codingStandardsIgnoreFile
+
+namespace Magento\Framework\App\Test\Unit\Router;
 
 class NoRouteHandlerListTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/lib/internal/Magento/Framework/App/Test/Unit/StateTest.php b/lib/internal/Magento/Framework/App/Test/Unit/StateTest.php
index db3f0e7e6c82ec5b421b88d793762a18db00b884..e8066f086c37b02ba2a8c15caaedfb323d891c7c 100644
--- a/lib/internal/Magento/Framework/App/Test/Unit/StateTest.php
+++ b/lib/internal/Magento/Framework/App/Test/Unit/StateTest.php
@@ -3,6 +3,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Framework\App\Test\Unit;
 
 class StateTest extends \PHPUnit_Framework_TestCase
@@ -95,4 +98,41 @@ class StateTest extends \PHPUnit_Framework_TestCase
     {
         throw new \Exception('Some error');
     }
+
+    /**
+     * @param string $mode
+     * @dataProvider constructorDataProvider
+     */
+    public function testConstructor($mode)
+    {
+        $model = new \Magento\Framework\App\State(
+            $this->getMockForAbstractClass('Magento\Framework\Config\ScopeInterface', [], '', false),
+            $mode
+        );
+        $this->assertEquals($mode, $model->getMode());
+    }
+
+    /**
+     * @return array
+     */
+    public static function constructorDataProvider()
+    {
+        return [
+            'default mode' => [\Magento\Framework\App\State::MODE_DEFAULT],
+            'production mode' => [\Magento\Framework\App\State::MODE_PRODUCTION],
+            'developer mode' => [\Magento\Framework\App\State::MODE_DEVELOPER]
+        ];
+    }
+
+    /**
+     * @expectedException \Exception
+     * @expectedExceptionMessage Unknown application mode: unknown mode
+     */
+    public function testConstructorException()
+    {
+        new \Magento\Framework\App\State(
+            $this->getMockForAbstractClass('Magento\Framework\Config\ScopeInterface', [], '', false),
+            "unknown mode"
+        );
+    }
 }
diff --git a/lib/internal/Magento/Framework/Cache/Backend/Database.php b/lib/internal/Magento/Framework/Cache/Backend/Database.php
index b1233e1301b24e981d92dd8a0c98c02217390225..bac1d79525dac3bc49f89537303f4af2d1a17f38 100644
--- a/lib/internal/Magento/Framework/Cache/Backend/Database.php
+++ b/lib/internal/Magento/Framework/Cache/Backend/Database.php
@@ -9,7 +9,7 @@
 /**
 Tables declaration:
 
-CREATE TABLE IF NOT EXISTS `core_cache` (
+CREATE TABLE IF NOT EXISTS `cache` (
         `id` VARCHAR(255) NOT NULL,
         `data` mediumblob,
         `create_time` int(11),
@@ -19,12 +19,12 @@ CREATE TABLE IF NOT EXISTS `core_cache` (
         KEY `IDX_EXPIRE_TIME` (`expire_time`)
 )ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-CREATE TABLE IF NOT EXISTS `core_cache_tag` (
+CREATE TABLE IF NOT EXISTS `cache_tag` (
     `tag` VARCHAR(255) NOT NULL,
     `cache_id` VARCHAR(255) NOT NULL,
     KEY `IDX_TAG` (`tag`),
     KEY `IDX_CACHE_ID` (`cache_id`),
-    CONSTRAINT `FK_CORE_CACHE_TAG` FOREIGN KEY (`cache_id`) REFERENCES `core_cache` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+    CONSTRAINT `FK_CORE_CACHE_TAG` FOREIGN KEY (`cache_id`) REFERENCES `cache` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 */
 
diff --git a/app/code/Magento/Core/Controller/Index/Index.php b/lib/internal/Magento/Framework/Controller/Index/Index.php
similarity index 84%
rename from app/code/Magento/Core/Controller/Index/Index.php
rename to lib/internal/Magento/Framework/Controller/Index/Index.php
index 85ff6a6af433749971148420bc95dcc6fc9cf837..bc8b9d70810a6fa660f8868044c344c02ea41c0e 100644
--- a/app/code/Magento/Core/Controller/Index/Index.php
+++ b/lib/internal/Magento/Framework/Controller/Index/Index.php
@@ -4,7 +4,7 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Core\Controller\Index;
+namespace Magento\Framework\Controller\Index;
 
 class Index extends \Magento\Framework\App\Action\Action
 {
diff --git a/app/code/Magento/Core/Controller/Noroute/Index.php b/lib/internal/Magento/Framework/Controller/Noroute/Index.php
similarity index 96%
rename from app/code/Magento/Core/Controller/Noroute/Index.php
rename to lib/internal/Magento/Framework/Controller/Noroute/Index.php
index 4d8887573d65775ef4cbe7c9dc10cb7376912675..2d4da914cd00450a19fa2889bc489f7561ba4b77 100644
--- a/app/code/Magento/Core/Controller/Noroute/Index.php
+++ b/lib/internal/Magento/Framework/Controller/Noroute/Index.php
@@ -4,7 +4,7 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Core\Controller\Noroute;
+namespace Magento\Framework\Controller\Noroute;
 
 class Index extends \Magento\Framework\App\Action\Action
 {
diff --git a/app/code/Magento/Core/Test/Unit/Controller/Index/IndexTest.php b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/Index/IndexTest.php
similarity index 70%
rename from app/code/Magento/Core/Test/Unit/Controller/Index/IndexTest.php
rename to lib/internal/Magento/Framework/Controller/Test/Unit/Controller/Index/IndexTest.php
index 9353ed854e497eb10e4cc660922680cf33301ac1..aac2c071fb0a4322ed0437bd84ac3efc4046f8a9 100644
--- a/app/code/Magento/Core/Test/Unit/Controller/Index/IndexTest.php
+++ b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/Index/IndexTest.php
@@ -3,7 +3,7 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Core\Test\Unit\Controller\Index;
+namespace Magento\Framework\Controller\Test\Unit\Controller\Index;
 
 use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
 
@@ -13,9 +13,9 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     {
         $objectManager = new ObjectManager($this);
         /**
-         * @var \Magento\Core\Controller\Index\Index
+         * @var \Magento\Framework\Controller\Index\Index
          */
-        $controller = $objectManager->getObject('Magento\Core\Controller\Index\Index');
+        $controller = $objectManager->getObject('Magento\Framework\Controller\Index\Index');
 
         // The execute method is empty and returns void, just calling to verify
         // the method exists and does not throw an exception
diff --git a/app/code/Magento/Core/Test/Unit/Controller/NorouteTest.php b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/NorouteTest.php
similarity index 94%
rename from app/code/Magento/Core/Test/Unit/Controller/NorouteTest.php
rename to lib/internal/Magento/Framework/Controller/Test/Unit/Controller/NorouteTest.php
index e8fa0f8df15a7325fdca4234d423af3a02549276..e1224c5ff7f80ed4ceec7bdb91671a9449865a0b 100644
--- a/app/code/Magento/Core/Test/Unit/Controller/NorouteTest.php
+++ b/lib/internal/Magento/Framework/Controller/Test/Unit/Controller/NorouteTest.php
@@ -3,12 +3,12 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Core\Test\Unit\Controller;
+namespace Magento\Framework\Controller\Test\Unit\Controller;
 
 class NorouteTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \Magento\Core\Controller\Noroute\Index
+     * @var \Magento\Framework\Controller\Noroute
      */
     protected $_controller;
 
@@ -34,7 +34,7 @@ class NorouteTest extends \PHPUnit_Framework_TestCase
         $this->_viewMock = $this->getMock('\Magento\Framework\App\ViewInterface');
         $this->_statusMock = $this->getMock('Magento\Framework\Object', ['getLoaded'], [], '', false);
         $this->_controller = $helper->getObject(
-            'Magento\Core\Controller\Noroute\Index',
+            'Magento\Framework\Controller\Noroute\Index',
             ['request' => $this->_requestMock, 'view' => $this->_viewMock]
         );
     }
diff --git a/lib/internal/Magento/Framework/Data/Collection.php b/lib/internal/Magento/Framework/Data/Collection.php
index c8ab80c82f3d2674e4fa500afd343eb2d349c5bf..2ba01363659041e1916b2dd9de9f33e613b13563 100644
--- a/lib/internal/Magento/Framework/Data/Collection.php
+++ b/lib/internal/Magento/Framework/Data/Collection.php
@@ -15,8 +15,7 @@ use Magento\Framework\Option\ArrayInterface;
  */
 
 /**
- * TODO: Refactor use of \Magento\Framework\Option\ArrayInterface in library. Probably will be refactored while
- * moving \Magento\Core to library
+ * TODO: Refactor use of \Magento\Framework\Option\ArrayInterface in library.
  */
 class Collection implements \IteratorAggregate, \Countable, ArrayInterface, CollectionDataSourceInterface
 {
diff --git a/lib/internal/Magento/Framework/Data/Collection/EntityFactory.php b/lib/internal/Magento/Framework/Data/Collection/EntityFactory.php
index 3341e32d209d0f4ecac8ef55bd9bed4d15308595..6ab0ab7e5d21f1da09d0a54b320969a03d401701 100644
--- a/lib/internal/Magento/Framework/Data/Collection/EntityFactory.php
+++ b/lib/internal/Magento/Framework/Data/Collection/EntityFactory.php
@@ -35,9 +35,9 @@ class EntityFactory implements EntityFactoryInterface
     public function create($className, array $data = [])
     {
         $model = $this->_objectManager->create($className, $data);
-        //TODO: fix that when this factory used only for \Magento\Core\Model\Abstract
-        //if (!$model instanceof \Magento\Core\Model\Abstract) {
-        //    throw new \LogicException($className . ' doesn\'t implement \Magento\Core\Model\Abstract');
+        //TODO: fix that when this factory used only for \Magento\Framework\Model\AbstractModel
+        //if (!$model instanceof \Magento\Framework\Model\AbstractModel) {
+        //    throw new \LogicException($className . ' doesn\'t implement \Magento\Framework\Model\AbstractModel');
         //}
         return $model;
     }
diff --git a/lib/internal/Magento/Framework/Flag/Resource.php b/lib/internal/Magento/Framework/Flag/Resource.php
index 1f8014ba0acb97520faaa154bc7aee198cf6f6a3..c1f4a1079841be17b74d6b85aa99d0001bea2436 100644
--- a/lib/internal/Magento/Framework/Flag/Resource.php
+++ b/lib/internal/Magento/Framework/Flag/Resource.php
@@ -17,6 +17,6 @@ class Resource extends \Magento\Framework\Model\Resource\Db\AbstractDb
      */
     protected function _construct()
     {
-        $this->_init('core_flag', 'flag_id');
+        $this->_init('flag', 'flag_id');
     }
 }
diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Mapper/_files/mapped_simple_di_config.php b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Mapper/_files/mapped_simple_di_config.php
index 88bce3e3a2a3aa0ce8fcf8cbb8220cd31b3ba8cf..c3eeeabb3125d93bc74abb10f3aff6141edfd376 100644
--- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Mapper/_files/mapped_simple_di_config.php
+++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Mapper/_files/mapped_simple_di_config.php
@@ -9,17 +9,17 @@ return [
         'Magento\Framework\App\RequestInterface' => 'Magento\Framework\App\Request\Http\Proxy',
     ],
     'Magento\Framework\App\State' => ['arguments' => ['test name' => 'test value']],
-    'Magento\Core\Model\Config\Modules' => [
+    'Magento\Config\Model\Config\Modules' => [
         'arguments' => ['test name' => 'test value'],
         'plugins' => [
             'simple_modules_plugin' => [
                 'sortOrder' => 10,
                 'disabled' => true,
-                'instance' => 'Magento\Core\Model\Config\Modules\Plugin',
+                'instance' => 'Magento\Config\Model\Config\Modules\Plugin',
             ],
             'simple_modules_plugin_advanced' => [
                 'sortOrder' => 0,
-                'instance' => 'Magento\Core\Model\Config\Modules\PluginAdvanced',
+                'instance' => 'Magento\Config\Model\Config\Modules\PluginAdvanced',
             ],
             'overridden_plugin' => ['sortOrder' => 30, 'disabled' => true],
         ],
diff --git a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Mapper/_files/simple_di_config.xml b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Mapper/_files/simple_di_config.xml
index 823fd9b38f6de60b756eafe7087cbebcc47e7986..d930f3dadf451c56bcaea24e5dab4060faba8e01 100644
--- a/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Mapper/_files/simple_di_config.xml
+++ b/lib/internal/Magento/Framework/ObjectManager/Test/Unit/Config/Mapper/_files/simple_di_config.xml
@@ -16,12 +16,12 @@
         </arguments>
     </type>
     <!--Arguments and plugins-->
-    <type name="Magento\Core\Model\Config\Modules">
+    <type name="Magento\Config\Model\Config\Modules">
         <arguments>
             <argument name="test name" xsi:type="string">test value</argument>
         </arguments>
-        <plugin name="simple_modules_plugin" type="Magento\Core\Model\Config\Modules\Plugin" disabled="true" sortOrder="10" />
-        <plugin name="simple_modules_plugin_advanced" type="Magento\Core\Model\Config\Modules\PluginAdvanced" />
+        <plugin name="simple_modules_plugin" type="Magento\Config\Model\Config\Modules\Plugin" disabled="true" sortOrder="10" />
+        <plugin name="simple_modules_plugin_advanced" type="Magento\Config\Model\Config\Modules\PluginAdvanced" />
         <plugin name="overridden_plugin" sortOrder="30" disabled="true" />
     </type>
     <!--Unshared type-->
diff --git a/lib/internal/Magento/Framework/Reflection/TypeProcessor.php b/lib/internal/Magento/Framework/Reflection/TypeProcessor.php
index 9087812959b597b446bce5eeb7021cae6c383780..0a29b8210793f5aecb46857e518da251a4278b82 100644
--- a/lib/internal/Magento/Framework/Reflection/TypeProcessor.php
+++ b/lib/internal/Magento/Framework/Reflection/TypeProcessor.php
@@ -432,7 +432,7 @@ class TypeProcessor
         } elseif ($isArrayType && is_null($value)) {
             return null;
         } elseif (!$isArrayType && !is_array($value)) {
-            if ($value !== null && $type !== self::ANY_TYPE && !settype($value, $type)) {
+            if ($value !== null && $type !== self::ANY_TYPE && !$this->setType($value, $type)) {
                 throw new SerializationException(
                     SerializationException::TYPE_MISMATCH,
                     ['value' => (string)$value, 'type' => $type]
@@ -496,6 +496,24 @@ class TypeProcessor
         return $methodName;
     }
 
+    /**
+     * Set value to a particular type
+     *
+     * @param mixed $value
+     * @param string $type
+     * @return true on successful type cast
+     */
+    protected function setType(&$value, $type)
+    {
+        // settype doesn't work for boolean string values.
+        // ex: custom_attributes passed from SOAP client can have boolean values as string
+        if ($type == 'bool' || $type == 'boolean') {
+            $value = filter_var($value, FILTER_VALIDATE_BOOLEAN);
+            return true;
+        }
+        return settype($value, $type);
+    }
+
     /**
      * Find the setter method name for a property from the given class
      *
diff --git a/lib/internal/Magento/Framework/Session/SaveHandler/DbTable.php b/lib/internal/Magento/Framework/Session/SaveHandler/DbTable.php
index 5d05e5ffbe9c388015ef853c1ccee955b30eae87..b9e9b8a27aa94186ac3a9bb24522d571ecfa3ace 100644
--- a/lib/internal/Magento/Framework/Session/SaveHandler/DbTable.php
+++ b/lib/internal/Magento/Framework/Session/SaveHandler/DbTable.php
@@ -31,7 +31,7 @@ class DbTable extends \SessionHandler
      */
     public function __construct(\Magento\Framework\App\Resource $resource)
     {
-        $this->_sessionTable = $resource->getTableName('core_session');
+        $this->_sessionTable = $resource->getTableName('session');
         $this->_write = $resource->getConnection('core_write');
         $this->checkConnection();
     }
diff --git a/lib/internal/Magento/Framework/TestFramework/Test/Unit/Unit/Helper/ObjectManagerTest.php b/lib/internal/Magento/Framework/TestFramework/Test/Unit/Unit/Helper/ObjectManagerTest.php
index 58515be62b53e0db573554ee009d1b912819dcd4..d4e50811d7d92598df1588fa0af35359b2879a35 100644
--- a/lib/internal/Magento/Framework/TestFramework/Test/Unit/Unit/Helper/ObjectManagerTest.php
+++ b/lib/internal/Magento/Framework/TestFramework/Test/Unit/Unit/Helper/ObjectManagerTest.php
@@ -3,6 +3,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Framework\TestFramework\Test\Unit\Unit\Helper;
 
 class ObjectManagerTest extends \PHPUnit_Framework_TestCase
@@ -76,7 +79,7 @@ class ObjectManagerTest extends \PHPUnit_Framework_TestCase
             $this->assertAttributeInstanceOf($propertyType, '_' . $propertyName, $model);
         }
 
-        /** @var $resourceMock \Magento\Core\Model\Resource\Resource */
+        /** @var $resourceMock \Magento\Framework\Module\Resource */
         $resourceMock = $this->getMock(
             'Magento\Framework\Module\Resource',
             ['_getReadAdapter', 'getIdFieldName', '__sleep', '__wakeup'],
diff --git a/lib/internal/Magento/Framework/View/Layout/PageType/Config/SchemaLocator.php b/lib/internal/Magento/Framework/View/Layout/PageType/Config/SchemaLocator.php
index 8c3987f63f9e7799f85d23191381bb8fdcfe702a..6d65479e651389b58d854843afe3a687bee0ca3a 100644
--- a/lib/internal/Magento/Framework/View/Layout/PageType/Config/SchemaLocator.php
+++ b/lib/internal/Magento/Framework/View/Layout/PageType/Config/SchemaLocator.php
@@ -18,12 +18,10 @@ class SchemaLocator implements \Magento\Framework\Config\SchemaLocatorInterface
 
     /**
      * Constructor
-     *
-     * @param \Magento\Framework\Module\Dir\Reader $moduleReader
      */
-    public function __construct(\Magento\Framework\Module\Dir\Reader $moduleReader)
+    public function __construct()
     {
-        $this->_schema = $moduleReader->getModuleDir('etc', 'Magento_Core') . '/page_types.xsd';
+        $this->_schema = realpath(__DIR__ . '/../../etc/page_types.xsd');
     }
 
     /**
diff --git a/app/code/Magento/Core/etc/page_types.xsd b/lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd
similarity index 100%
rename from app/code/Magento/Core/etc/page_types.xsd
rename to lib/internal/Magento/Framework/View/Layout/etc/page_types.xsd
diff --git a/lib/internal/Magento/Framework/View/Test/Unit/Design/Fallback/RulePoolTest.php b/lib/internal/Magento/Framework/View/Test/Unit/Design/Fallback/RulePoolTest.php
index c2f66aa9a9c430073d48f6c5c477e205f5953400..a4121826604aa11e55f5697190f0847aa5f6a0a9 100644
--- a/lib/internal/Magento/Framework/View/Test/Unit/Design/Fallback/RulePoolTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/Design/Fallback/RulePoolTest.php
@@ -3,6 +3,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Framework\View\Test\Unit\Design\Fallback;
 
 use \Magento\Framework\View\Design\Fallback\RulePool;
@@ -229,12 +232,12 @@ class RulePoolTest extends \PHPUnit_Framework_TestCase
             ],
             'template, non-modular-magento-core' => [
                 \Magento\Framework\View\Design\Fallback\RulePool::TYPE_TEMPLATE_FILE,
-                ['namespace' => 'Magento', 'module' => 'Core'],
+                ['namespace' => 'Magento', 'module' => 'Theme'],
                 [
-                    DirectoryList::THEMES . '/area/current_theme_path/Magento_Core/templates',
-                    DirectoryList::THEMES . '/area/parent_theme_path/Magento_Core/templates',
-                    DirectoryList::MODULES . '/Magento/Core/view/area/templates',
-                    DirectoryList::MODULES . '/Magento/Core/view/base/templates',
+                    DirectoryList::THEMES . '/area/current_theme_path/Magento_Theme/templates',
+                    DirectoryList::THEMES . '/area/parent_theme_path/Magento_Theme/templates',
+                    DirectoryList::MODULES . '/Magento/Theme/view/area/templates',
+                    DirectoryList::MODULES . '/Magento/Theme/view/base/templates',
                 ],
             ],
 
diff --git a/app/code/Magento/Core/Test/Unit/Model/DesignLoaderTest.php b/lib/internal/Magento/Framework/View/Test/Unit/DesignLoaderTest.php
similarity index 95%
rename from app/code/Magento/Core/Test/Unit/Model/DesignLoaderTest.php
rename to lib/internal/Magento/Framework/View/Test/Unit/DesignLoaderTest.php
index 4d4a994c2e5d5b654bdab87b15fcf97c159c211a..b3d0f530171683d28eaaf37f2bc032a7cee50a70 100644
--- a/app/code/Magento/Core/Test/Unit/Model/DesignLoaderTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/DesignLoaderTest.php
@@ -3,7 +3,10 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Core\Test\Unit\Model;
+
+// @codingStandardsIgnoreFile
+
+namespace Magento\Framework\View\Test\Unit;
 
 class DesignLoaderTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/lib/internal/Magento/Framework/View/Test/Unit/Element/AbstractBlockTest.php b/lib/internal/Magento/Framework/View/Test/Unit/Element/AbstractBlockTest.php
index eed898b3cd0c4d601da624dc725e799b983ff3d3..f187f63c647f09cdcf36f6075368da90248905f3 100644
--- a/lib/internal/Magento/Framework/View/Test/Unit/Element/AbstractBlockTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/Element/AbstractBlockTest.php
@@ -3,6 +3,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Framework\View\Test\Unit\Element;
 
 class AbstractBlockTest extends \PHPUnit_Framework_TestCase
@@ -64,7 +67,7 @@ class AbstractBlockTest extends \PHPUnit_Framework_TestCase
         )->method(
             'getVarValue'
         )->with(
-            'Magento_Core',
+            'Magento_Theme',
             'v1'
         )->will(
             $this->returnValue('one')
@@ -80,7 +83,7 @@ class AbstractBlockTest extends \PHPUnit_Framework_TestCase
         $block = $this->getMockForAbstractClass(
             'Magento\Framework\View\Element\AbstractBlock',
             $helper->getConstructArguments('Magento\Framework\View\Element\AbstractBlock', $params),
-            uniqid('Magento\\Core\\Block\\AbstractBlock\\')
+            uniqid('Magento\\Theme\\Block\\AbstractBlock\\')
         );
 
         $this->assertEquals('one', $block->getVar('v1'));
diff --git a/app/code/Magento/Core/Test/Unit/Model/Layout/XsdTest.php b/lib/internal/Magento/Framework/View/Test/Unit/Layout/XsdTest.php
similarity index 94%
rename from app/code/Magento/Core/Test/Unit/Model/Layout/XsdTest.php
rename to lib/internal/Magento/Framework/View/Test/Unit/Layout/XsdTest.php
index 3bdf7c6f6df1910495275801159607c1c5e21712..dae07e2a6ac190804687ad60dee637df0c2d5acd 100644
--- a/app/code/Magento/Core/Test/Unit/Model/Layout/XsdTest.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/Layout/XsdTest.php
@@ -3,7 +3,10 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-namespace Magento\Core\Test\Unit\Model\Layout;
+
+// @codingStandardsIgnoreFile
+
+namespace Magento\Framework\View\Test\Unit\Layout;
 
 class XsdTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/app/code/Magento/Core/Test/Unit/Model/Layout/_files/action.xml b/lib/internal/Magento/Framework/View/Test/Unit/Layout/_files/action.xml
similarity index 100%
rename from app/code/Magento/Core/Test/Unit/Model/Layout/_files/action.xml
rename to lib/internal/Magento/Framework/View/Test/Unit/Layout/_files/action.xml
diff --git a/app/code/Magento/Core/Test/Unit/Model/Layout/_files/arguments.xml b/lib/internal/Magento/Framework/View/Test/Unit/Layout/_files/arguments.xml
similarity index 89%
rename from app/code/Magento/Core/Test/Unit/Model/Layout/_files/arguments.xml
rename to lib/internal/Magento/Framework/View/Test/Unit/Layout/_files/arguments.xml
index 7feb1abb6619b22afcd693820d9e160fff3b2310..cfda9d37a3fea1de5065684614d078e9ca51415a 100644
--- a/app/code/Magento/Core/Test/Unit/Model/Layout/_files/arguments.xml
+++ b/lib/internal/Magento/Framework/View/Test/Unit/Layout/_files/arguments.xml
@@ -9,11 +9,11 @@
     <body>
         <block class="Magento\Test\Block" name="test.block">
             <arguments>
-                <argument name="testHelperWithParams" xsi:type="helper" helper="Magento\Core\Model\Layout\Argument\Handler\TestHelper::testMethod">
+                <argument name="testHelperWithParams" xsi:type="helper" helper="Magento\Framework\View\Layout\Argument\Handler\TestHelper::testMethod">
                     <param name="firstParam">firstValue</param>
                     <param name="secondParam">secondValue</param>
                 </argument>
-                <argument name="testHelperWithoutParams" xsi:type="helper" helper="Magento\Core\Model\Layout\Argument\Handler\TestHelper::testMethod"/>
+                <argument name="testHelperWithoutParams" xsi:type="helper" helper="Magento\Framework\View\Layout\Argument\Handler\TestHelper::testMethod"/>
                 <argument name="testSimpleBoolean" xsi:type="boolean">true</argument>
                 <argument name="testSimpleNumber" xsi:type="number">1.5</argument>
                 <argument name="testSimpleString" xsi:type="string">Simple Test</argument>
@@ -39,11 +39,11 @@
                         <item name="url" xsi:type="string">*/sales_archive/massAdd</item>
                     </item>
                 </argument>
-                <argument name="testOptions" xsi:type="options" model="Magento\Core\Model\Layout\Argument\Handler\TestOptions"/>
+                <argument name="testOptions" xsi:type="options" model="Magento\Framework\View\Layout\Argument\Handler\TestOptions"/>
                 <argument name="testSimpleObject" xsi:type="object">
                     Magento\Framework\View\Layout\Argument\Handler\TestObject
                 </argument>
-                <argument name="testComplexObject" xsi:type="object"><updater>Magento_Test_Updater</updater>Magento\Core\Model\Layout\Argument\Handler\TestObject</argument>
+                <argument name="testComplexObject" xsi:type="object"><updater>Magento_Test_Updater</updater>Magento\Framework\View\Layout\Argument\Handler\TestObject</argument>
             </arguments>
             <action method="testAction">
                 <argument name="string" xsi:type="string">string</argument>
diff --git a/app/code/Magento/Core/Test/Unit/Model/Layout/_files/invalidLayoutArgumentsXmlArray.php b/lib/internal/Magento/Framework/View/Test/Unit/Layout/_files/invalidLayoutArgumentsXmlArray.php
similarity index 94%
rename from app/code/Magento/Core/Test/Unit/Model/Layout/_files/invalidLayoutArgumentsXmlArray.php
rename to lib/internal/Magento/Framework/View/Test/Unit/Layout/_files/invalidLayoutArgumentsXmlArray.php
index 14cd1a31346ccf3830699c0368e2c79ae6a62f35..0bb28856ca1479a34f6033a6edcf5778cf333ee3 100644
--- a/app/code/Magento/Core/Test/Unit/Model/Layout/_files/invalidLayoutArgumentsXmlArray.php
+++ b/lib/internal/Magento/Framework/View/Test/Unit/Layout/_files/invalidLayoutArgumentsXmlArray.php
@@ -82,7 +82,7 @@ return [
                 <block class="Magento\Test\Block" name="test.block">
                     <arguments>
                         <argument name="argumentName" xsi:type="helper"
-                            helper="Magento\Core\Model\Layout\Argument\Handler\TestHelper::testMethod">
+                            helper="Magento\Framework\View\Layout\Argument\Handler\TestHelper::testMethod">
                             <param />
                         </argument>
                     </arguments>
@@ -96,7 +96,7 @@ return [
                 <block class="Magento\Test\Block" name="test.block">
                     <arguments>
                         <argument name="argumentName" xsi:type="helper"
-                            helper="Magento\Core\Model\Layout\Argument\Handler\TestHelper::testMethod">
+                            helper="Magento\Framework\View\Layout\Argument\Handler\TestHelper::testMethod">
                             <param name="paramName" forbidden="forbidden"/>
                         </argument>
                     </arguments>
@@ -110,7 +110,7 @@ return [
                 <block class="Magento\Test\Block" name="test.block">
                     <arguments>
                         <argument name="argumentName" xsi:type="helper"
-                            helper="Magento\Core\Model\Layout\Argument\Handler\TestHelper::testMethod">
+                            helper="Magento\Framework\View\Layout\Argument\Handler\TestHelper::testMethod">
                             <param name="paramName"><forbidden /></param>
                         </argument>
                     </arguments>
diff --git a/lib/internal/Magento/Framework/Webapi/CustomAttributeTypeLocatorInterface.php b/lib/internal/Magento/Framework/Webapi/CustomAttributeTypeLocatorInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..dac64d2acfcf9379169980a836e95d15ef6e034f
--- /dev/null
+++ b/lib/internal/Magento/Framework/Webapi/CustomAttributeTypeLocatorInterface.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Framework\Webapi;
+
+/**
+ * Interface to locate types for custom attributes
+ */
+interface CustomAttributeTypeLocatorInterface
+{
+    /**
+     * Get Data Interface type for a given custom attribute code
+     *
+     * @param string $attributeCode
+     * @param string $serviceClass
+     * @return string|null
+     */
+    public function getType($attributeCode, $serviceClass);
+}
diff --git a/lib/internal/Magento/Framework/Webapi/ServiceInputProcessor.php b/lib/internal/Magento/Framework/Webapi/ServiceInputProcessor.php
index ec1807f5222ef213d42175e76bd6dbccda8d870c..df8c25b15d4b2459d999d9214d626a79ac65e8f3 100644
--- a/lib/internal/Magento/Framework/Webapi/ServiceInputProcessor.php
+++ b/lib/internal/Magento/Framework/Webapi/ServiceInputProcessor.php
@@ -36,36 +36,36 @@ class ServiceInputProcessor
     /** @var ObjectManagerInterface */
     protected $objectManager;
 
-    /** @var ServiceConfigReader */
-    protected $serviceConfigReader;
-
     /** @var AttributeValueFactory */
     protected $attributeValueFactory;
 
     /** @var WebapiCache */
     protected $cache;
 
+    /** @var  CustomAttributeTypeLocatorInterface */
+    protected $customAttributeTypeLocator;
+
     /**
      * Initialize dependencies.
      *
      * @param TypeProcessor $typeProcessor
      * @param ObjectManagerInterface $objectManager
-     * @param ServiceConfigReader $serviceConfigReader
      * @param AttributeValueFactory $attributeValueFactory
      * @param WebapiCache $cache
+     * @param CustomAttributeTypeLocatorInterface $customAttributeTypeLocator
      */
     public function __construct(
         TypeProcessor $typeProcessor,
         ObjectManagerInterface $objectManager,
-        ServiceConfigReader $serviceConfigReader,
         AttributeValueFactory $attributeValueFactory,
-        WebapiCache $cache
+        WebapiCache $cache,
+        CustomAttributeTypeLocatorInterface $customAttributeTypeLocator
     ) {
         $this->typeProcessor = $typeProcessor;
         $this->objectManager = $objectManager;
-        $this->serviceConfigReader = $serviceConfigReader;
         $this->attributeValueFactory = $attributeValueFactory;
         $this->cache = $cache;
+        $this->customAttributeTypeLocator = $customAttributeTypeLocator;
     }
 
     /**
@@ -153,7 +153,7 @@ class ServiceInputProcessor
                     }
                 }
                 if ($camelCaseProperty === 'CustomAttributes') {
-                    $setterValue = $this->convertCustomAttributeValue($value, $returnType, $className);
+                    $setterValue = $this->convertCustomAttributeValue($value, $className);
                 } else {
                     $setterValue = $this->_convertValue($value, $returnType);
                 }
@@ -167,24 +167,14 @@ class ServiceInputProcessor
      * Convert custom attribute data array to array of AttributeValue Data Object
      *
      * @param array $customAttributesValueArray
-     * @param string $returnType
      * @param string $dataObjectClassName
      * @return AttributeValue[]
      */
-    protected function convertCustomAttributeValue($customAttributesValueArray, $returnType, $dataObjectClassName)
+    protected function convertCustomAttributeValue($customAttributesValueArray, $dataObjectClassName)
     {
         $result = [];
-        $allAttributes = $this->serviceConfigReader->read();
         $dataObjectClassName = ltrim($dataObjectClassName, '\\');
-        if (!isset($allAttributes[$dataObjectClassName])) {
-            $attributes = $this->_convertValue($customAttributesValueArray, $returnType);
-            $attributesByName = [];
-            foreach ($attributes as $attribute) {
-                $attributesByName[$attribute->getAttributeCode()] = $attribute;
-            }
-            return $attributesByName;
-        }
-        $dataObjectAttributes = $allAttributes[$dataObjectClassName];
+
         $camelCaseAttributeCodeKey = lcfirst(
             SimpleDataObjectConverter::snakeCaseToUpperCamelCase(AttributeValue::ATTRIBUTE_CODE)
         );
@@ -197,11 +187,9 @@ class ServiceInputProcessor
                 $customAttributeCode = null;
             }
 
-            //Check if type is defined, else default to mixed
-            $type = isset($dataObjectAttributes[$customAttributeCode])
-                ? $dataObjectAttributes[$customAttributeCode]
-                : TypeProcessor::ANY_TYPE;
-
+            //Check if type is defined, else default to string
+            $type = $this->customAttributeTypeLocator->getType($customAttributeCode, $dataObjectClassName);
+            $type = $type ? $type : TypeProcessor::ANY_TYPE;
             $customAttributeValue = $customAttribute[AttributeValue::VALUE];
             if (is_array($customAttributeValue)) {
                 //If type for AttributeValue's value as array is mixed, further processing is not possible
diff --git a/lib/internal/Magento/Framework/Webapi/Test/Unit/ServiceInputProcessorTest.php b/lib/internal/Magento/Framework/Webapi/Test/Unit/ServiceInputProcessorTest.php
index d53450141ba4310b8f2d69f5a7b82e847dd86778..cccc983e642301d3eef8083d04c836735d118ec3 100644
--- a/lib/internal/Magento/Framework/Webapi/Test/Unit/ServiceInputProcessorTest.php
+++ b/lib/internal/Magento/Framework/Webapi/Test/Unit/ServiceInputProcessorTest.php
@@ -3,6 +3,9 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+
+// @codingStandardsIgnoreFile
+
 namespace Magento\Framework\Webapi\Test\Unit;
 
 use \Magento\Framework\Webapi\ServiceInputProcessor;
@@ -25,10 +28,10 @@ class ServiceInputProcessorTest extends \PHPUnit_Framework_TestCase
     protected $serviceInputProcessor;
 
     /** @var \PHPUnit_Framework_MockObject_MockObject */
-    protected $attributeValueFactory;
+    protected $attributeValueFactoryMock;
 
     /** @var \PHPUnit_Framework_MockObject_MockObject */
-    protected $serviceConfigReader;
+    protected $customAttributeTypeLocator;
 
     /** @var \PHPUnit_Framework_MockObject_MockObject  */
     protected $objectManagerMock;
@@ -46,7 +49,7 @@ class ServiceInputProcessorTest extends \PHPUnit_Framework_TestCase
             ->getMock();
         $cache->expects($this->any())->method('load')->willReturn(false);
 
-        $this->serviceConfigReader = $this->getMockBuilder('Magento\Framework\Api\Config\Reader')
+        $this->customAttributeTypeLocator = $this->getMockBuilder('Magento\Eav\Model\EavCustomAttributeTypeLocator')
             ->disableOriginalConstructor()
             ->getMock();
 
@@ -68,7 +71,7 @@ class ServiceInputProcessorTest extends \PHPUnit_Framework_TestCase
                 'typeProcessor' => $typeProcessor,
                 'objectManager' => $this->objectManagerMock,
                 'cache' => $cache,
-                'serviceConfigReader' => $this->serviceConfigReader,
+                'customAttributeTypeLocator' => $this->customAttributeTypeLocator,
                 'attributeValueFactory' => $this->attributeValueFactoryMock
             ]
         );
@@ -344,8 +347,8 @@ class ServiceInputProcessorTest extends \PHPUnit_Framework_TestCase
      *
      * @dataProvider customAttributesDataProvider
      * @param $customAttributeType
-     * @param $customAttributeValue
-     * @param $attributeCode
+     * @param $inputData
+     * @param $expectedObject
      */
     public function testCustomAttributesProperties($customAttributeType, $inputData, $expectedObject)
     {
@@ -357,13 +360,7 @@ class ServiceInputProcessorTest extends \PHPUnit_Framework_TestCase
                 'Magento\Framework\Webapi\Test\Unit\ServiceInputProcessor\SimpleArray',
             ]
         );
-        $this->serviceConfigReader->expects($this->any())->method('read')->willReturn(
-            [
-                'Magento\Framework\Webapi\Test\Unit\ServiceInputProcessor\ObjectWithCustomAttributes' => [
-                    TestService::CUSTOM_ATTRIBUTE_CODE => $customAttributeType
-                ]
-            ]
-        );
+        $this->customAttributeTypeLocator->expects($this->any())->method('getType')->willReturn($customAttributeType);
 
         $result = $this->serviceInputProcessor->process(
             'Magento\Framework\Webapi\Test\Unit\ServiceInputProcessor\TestService',
diff --git a/pub/get.php b/pub/get.php
index f223a917dbb317cdc39736c975651261fca3b348..7e9adfd0e9fd7cde47236f024c888ae44d254f3d 100755
--- a/pub/get.php
+++ b/pub/get.php
@@ -63,9 +63,7 @@ if ($mediaDirectory) {
 // Materialize file in application
 $params = $_SERVER;
 if (empty($mediaDirectory)) {
-    $params[ObjectManagerFactory::INIT_PARAM_DEPLOYMENT_CONFIG] = [
-        DeploymentConfig::CONFIG_KEY => ['Magento_Core' => 1],
-    ];
+    $params[ObjectManagerFactory::INIT_PARAM_DEPLOYMENT_CONFIG] = [];
     $params[Factory::PARAM_CACHE_FORCED_OPTIONS] = ['frontend_options' => ['disable_save' => true]];
 }
 $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
diff --git a/setup/src/Magento/Setup/Model/Installer.php b/setup/src/Magento/Setup/Model/Installer.php
index 0b2772d9f45c4684f7baeab5b7dd3f1c063d35a9..650fe796f7adf819de1334f29f3d89871e19cf7c 100644
--- a/setup/src/Magento/Setup/Model/Installer.php
+++ b/setup/src/Magento/Setup/Model/Installer.php
@@ -612,6 +612,202 @@ class Installer
         }
     }
 
+    /**
+     * Set up core tables
+     *
+     * @param SchemaSetupInterface $setup
+     * @return void
+     */
+    private function setupCoreTables(SchemaSetupInterface $setup)
+    {
+        /* @var $connection \Magento\Framework\DB\Adapter\AdapterInterface */
+        $connection = $setup->getConnection();
+
+        $setup->startSetup();
+
+        $this->setupSessionTable($setup, $connection);
+        $this->setupCacheTable($setup, $connection);
+        $this->setupCacheTagTable($setup, $connection);
+        $this->setupFlagTable($setup, $connection);
+
+        $setup->endSetup();
+    }
+
+    /**
+     * Create table 'session'
+     *
+     * @param SchemaSetupInterface $setup
+     * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection
+     * @return void
+     */
+    private function setupSessionTable(
+        SchemaSetupInterface $setup,
+        \Magento\Framework\DB\Adapter\AdapterInterface $connection
+    ) {
+        $table = $connection->newTable(
+            $setup->getTable('session')
+        )->addColumn(
+            'session_id',
+            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
+            255,
+            ['nullable' => false, 'primary' => true],
+            'Session Id'
+        )->addColumn(
+            'session_expires',
+            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
+            null,
+            ['unsigned' => true, 'nullable' => false, 'default' => '0'],
+            'Date of Session Expiration'
+        )->addColumn(
+            'session_data',
+            \Magento\Framework\DB\Ddl\Table::TYPE_BLOB,
+            '2M',
+            ['nullable' => false],
+            'Session Data'
+        )->setComment(
+            'Database Sessions Storage'
+        );
+        $connection->createTable($table);
+    }
+
+    /**
+     * Create table 'cache'
+     *
+     * @param SchemaSetupInterface $setup
+     * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection
+     * @return void
+     */
+    private function setupCacheTable(
+        SchemaSetupInterface $setup,
+        \Magento\Framework\DB\Adapter\AdapterInterface $connection
+    ) {
+        $table = $connection->newTable(
+            $setup->getTable('cache')
+        )->addColumn(
+            'id',
+            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
+            200,
+            ['nullable' => false, 'primary' => true],
+            'Cache Id'
+        )->addColumn(
+            'data',
+            \Magento\Framework\DB\Ddl\Table::TYPE_BLOB,
+            '2M',
+            [],
+            'Cache Data'
+        )->addColumn(
+            'create_time',
+            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
+            null,
+            [],
+            'Cache Creation Time'
+        )->addColumn(
+            'update_time',
+            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
+            null,
+            [],
+            'Time of Cache Updating'
+        )->addColumn(
+            'expire_time',
+            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
+            null,
+            [],
+            'Cache Expiration Time'
+        )->addIndex(
+            $setup->getIdxName('cache', ['expire_time']),
+            ['expire_time']
+        )->setComment(
+            'Caches'
+        );
+        $connection->createTable($table);
+    }
+
+    /**
+     * Create table 'cache_tag'
+     *
+     * @param SchemaSetupInterface $setup
+     * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection
+     * @return void
+     */
+    private function setupCacheTagTable(
+        SchemaSetupInterface $setup,
+        \Magento\Framework\DB\Adapter\AdapterInterface $connection
+    ) {
+        $table = $connection->newTable(
+            $setup->getTable('cache_tag')
+        )->addColumn(
+            'tag',
+            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
+            100,
+            ['nullable' => false, 'primary' => true],
+            'Tag'
+        )->addColumn(
+            'cache_id',
+            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
+            200,
+            ['nullable' => false, 'primary' => true],
+            'Cache Id'
+        )->addIndex(
+            $setup->getIdxName('cache_tag', ['cache_id']),
+            ['cache_id']
+        )->setComment(
+            'Tag Caches'
+        );
+        $connection->createTable($table);
+    }
+
+    /**
+     * Create table 'flag'
+     *
+     * @param SchemaSetupInterface $setup
+     * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection
+     * @return void
+     */
+    private function setupFlagTable(
+        SchemaSetupInterface $setup,
+        \Magento\Framework\DB\Adapter\AdapterInterface $connection
+    ) {
+        $table = $connection->newTable(
+            $setup->getTable('flag')
+        )->addColumn(
+            'flag_id',
+            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
+            null,
+            ['identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true],
+            'Flag Id'
+        )->addColumn(
+            'flag_code',
+            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
+            255,
+            ['nullable' => false],
+            'Flag Code'
+        )->addColumn(
+            'state',
+            \Magento\Framework\DB\Ddl\Table::TYPE_SMALLINT,
+            null,
+            ['unsigned' => true, 'nullable' => false, 'default' => '0'],
+            'Flag State'
+        )->addColumn(
+            'flag_data',
+            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
+            '64k',
+            [],
+            'Flag Data'
+        )->addColumn(
+            'last_update',
+            \Magento\Framework\DB\Ddl\Table::TYPE_TIMESTAMP,
+            null,
+            ['nullable' => false, 'default' => \Magento\Framework\DB\Ddl\Table::TIMESTAMP_INIT_UPDATE],
+            'Date of Last Flag Update'
+        )->addIndex(
+            $setup->getIdxName('flag', ['last_update']),
+            ['last_update']
+        )->setComment(
+            'Flag'
+        );
+        $connection->createTable($table);
+    }
+
     /**
      * Installs DB schema
      *
@@ -624,6 +820,7 @@ class Installer
             ['resource' => $this->context->getResources()]
         );
         $this->setupModuleRegistry($setup);
+        $this->setupCoreTables($setup);
         $this->log->log('Schema creation/updates:');
         $this->handleDBSchemaData($setup, 'schema');
     }
diff --git a/setup/src/Magento/Setup/Test/Unit/Controller/ConsoleControllerTest.php b/setup/src/Magento/Setup/Test/Unit/Controller/ConsoleControllerTest.php
index a248687ce6b24b07864012cc33f9b5bf9210cf09..9829a32e94d62e71f507b4d5565897c4f2a755a5 100644
--- a/setup/src/Magento/Setup/Test/Unit/Controller/ConsoleControllerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Controller/ConsoleControllerTest.php
@@ -4,6 +4,8 @@
  * See COPYING.txt for license details.
  */
 
+// @codingStandardsIgnoreFile
+
 namespace Magento\Setup\Test\Unit\Controller;
 
 use \Magento\Setup\Controller\ConsoleController;
@@ -386,12 +388,12 @@ class ConsoleControllerTest extends \PHPUnit_Framework_TestCase
         $moduleListMock
             ->expects($this->once())
             ->method('getNames')
-            ->will($this->returnValue(['Magento_Core', 'Magento_Store']));
+            ->will($this->returnValue(['Magento_Theme', 'Magento_Store']));
         $fullModuleListMock = $this->getMock('Magento\Framework\Module\FullModuleList', [], [], '', false);
         $fullModuleListMock
             ->expects($this->once())
             ->method('getNames')
-            ->will($this->returnValue(['Magento_Core', 'Magento_Store', 'Magento_Directory']));
+            ->will($this->returnValue(['Magento_Theme', 'Magento_Store', 'Magento_Directory']));
         $returnValueMap = [
             [
                 'Magento\Framework\Module\ModuleList',
diff --git a/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php b/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php
index b780bb25a335ac92aa8c0808d7acb6c5e0d265ab..459368efdeeeb93cb4dcb7a1964878cac86bcbca 100644
--- a/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php
+++ b/setup/src/Magento/Setup/Test/Unit/Model/InstallerTest.php
@@ -239,6 +239,7 @@ class InstallerTest extends \PHPUnit_Framework_TestCase
         $setup->expects($this->any())->method('getConnection')->willReturn($connection);
         $table->expects($this->any())->method('addColumn')->willReturn($table);
         $table->expects($this->any())->method('setComment')->willReturn($table);
+        $table->expects($this->any())->method('addIndex')->willReturn($table);
         $connection->expects($this->any())->method('newTable')->willReturn($table);
         $resource = $this->getMock('Magento\Framework\App\Resource', [], [], '', false);
         $this->contextMock->expects($this->any())->method('getResources')->willReturn($resource);