diff --git a/app/code/Magento/CatalogUrlRewrite/Model/Category/Plugin/Category/Remove.php b/app/code/Magento/CatalogUrlRewrite/Model/Category/Plugin/Category/Remove.php
index ccc0b9c83f287f5c5329f17250b59b39beda60d2..2617f3290ee0ec801fb1be73e274cc94f13af8b9 100644
--- a/app/code/Magento/CatalogUrlRewrite/Model/Category/Plugin/Category/Remove.php
+++ b/app/code/Magento/CatalogUrlRewrite/Model/Category/Plugin/Category/Remove.php
@@ -5,45 +5,40 @@
  */
 namespace Magento\CatalogUrlRewrite\Model\Category\Plugin\Category;
 
-use Magento\Catalog\Api\Data\CategoryInterface;
-use Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider;
-use Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator;
-use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator;
-use Magento\UrlRewrite\Model\UrlPersistInterface;
 use Magento\UrlRewrite\Service\V1\Data\UrlRewrite;
-use Magento\Framework\App\ObjectManager;
-use Magento\Framework\Serialize\Serializer\Json;
 
 class Remove
 {
-    /** @var UrlPersistInterface */
+    /** @var \Magento\UrlRewrite\Model\UrlPersistInterface */
     protected $urlPersist;
 
-    /** @var ProductUrlRewriteGenerator */
+    /** @var \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator */
     protected $productUrlRewriteGenerator;
 
-    /** @var ChildrenCategoriesProvider */
+    /** @var \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider */
     protected $childrenCategoriesProvider;
 
-    /** @var Json */
+    /** @var \Magento\Framework\Serialize\Serializer\Json */
     private $serializer;
 
     /**
-     * @param UrlPersistInterface $urlPersist
-     * @param ProductUrlRewriteGenerator $productUrlRewriteGenerator
-     * @param ChildrenCategoriesProvider $childrenCategoriesProvider
-     * @param Json|null $serializer
+     * @param \Magento\UrlRewrite\Model\UrlPersistInterface $urlPersist
+     * @param \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator $productUrlRewriteGenerator
+     * @param \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider $childrenCategoriesProvider
+     * @param \Magento\Framework\Serialize\Serializer\Json|null $serializer
      */
     public function __construct(
-        UrlPersistInterface $urlPersist,
-        ProductUrlRewriteGenerator $productUrlRewriteGenerator,
-        ChildrenCategoriesProvider $childrenCategoriesProvider,
-        Json $serializer = null
+        \Magento\UrlRewrite\Model\UrlPersistInterface $urlPersist,
+        \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator $productUrlRewriteGenerator,
+        \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider $childrenCategoriesProvider,
+        \Magento\Framework\Serialize\Serializer\Json $serializer = null
     ) {
         $this->urlPersist = $urlPersist;
         $this->productUrlRewriteGenerator = $productUrlRewriteGenerator;
         $this->childrenCategoriesProvider = $childrenCategoriesProvider;
-        $this->serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class);
+        $this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()->get(
+            \Magento\Framework\Serialize\Serializer\Json::class
+        );
     }
 
     /**
@@ -51,14 +46,14 @@ class Remove
      *
      * @param \Magento\Catalog\Model\ResourceModel\Category $subject
      * @param \Closure $proceed
-     * @param CategoryInterface $category
+     * @param \Magento\Catalog\Api\Data\CategoryInterface $category
      * @return mixed
      * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function aroundDelete(
         \Magento\Catalog\Model\ResourceModel\Category $subject,
         \Closure $proceed,
-        CategoryInterface $category
+        \Magento\Catalog\Api\Data\CategoryInterface $category
     ) {
         $categoryIds = $this->childrenCategoriesProvider->getChildrenIds($category, true);
         $categoryIds[] = $category->getId();
@@ -80,13 +75,13 @@ class Remove
         $this->urlPersist->deleteByData(
             [
                 UrlRewrite::ENTITY_ID => $categoryId,
-                UrlRewrite::ENTITY_TYPE => CategoryUrlRewriteGenerator::ENTITY_TYPE,
+                UrlRewrite::ENTITY_TYPE => \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator::ENTITY_TYPE,
             ]
         );
         $this->urlPersist->deleteByData(
             [
                 UrlRewrite::METADATA => $this->serializer->serialize(['category_id' => $categoryId]),
-                UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE,
+                UrlRewrite::ENTITY_TYPE => \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator::ENTITY_TYPE,
             ]
         );
     }
diff --git a/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php b/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php
index e334bf414013fa5f29570ebc09e95d439bbfa2bc..06f80e9c246970d53c15ea3478db3f989829846a 100644
--- a/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php
+++ b/app/code/Magento/CatalogUrlRewrite/Observer/UrlRewriteHandler.php
@@ -5,28 +5,20 @@
  */
 namespace Magento\CatalogUrlRewrite\Observer;
 
-use Magento\Catalog\Model\Category;
-use Magento\CatalogUrlRewrite\Model\CategoryBasedProductRewriteGenerator;
-use Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator;
-use Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator;
-use Magento\Framework\App\ObjectManager;
-use Magento\Framework\Event\Observer as EventObserver;
-use Magento\UrlRewrite\Model\UrlPersistInterface;
 use Magento\UrlRewrite\Service\V1\Data\UrlRewrite;
-use Magento\Framework\Serialize\Serializer\Json;
 
 class UrlRewriteHandler
 {
     /** @var \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider */
     protected $childrenCategoriesProvider;
 
-    /** @var CategoryUrlRewriteGenerator */
+    /** @var \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator */
     protected $categoryUrlRewriteGenerator;
 
-    /** @var ProductUrlRewriteGenerator */
+    /** @var \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator */
     protected $productUrlRewriteGenerator;
 
-    /** @var UrlPersistInterface */
+    /** @var \Magento\UrlRewrite\Model\UrlPersistInterface */
     protected $urlPersist;
 
     /** @var array */
@@ -35,43 +27,45 @@ class UrlRewriteHandler
     /** @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory */
     protected $productCollectionFactory;
 
-    /** @var CategoryBasedProductRewriteGenerator */
+    /** @var \Magento\CatalogUrlRewrite\Model\CategoryBasedProductRewriteGenerator */
     private $categoryBasedProductRewriteGenerator;
 
-    /** @var Json */
+    /** @var \Magento\Framework\Serialize\Serializer\Json */
     private $serializer;
 
     /**
      * @param \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider $childrenCategoriesProvider
-     * @param CategoryUrlRewriteGenerator $categoryUrlRewriteGenerator
-     * @param ProductUrlRewriteGenerator $productUrlRewriteGenerator
-     * @param UrlPersistInterface $urlPersist
+     * @param \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator $categoryUrlRewriteGenerator
+     * @param \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator $productUrlRewriteGenerator
+     * @param \Magento\UrlRewrite\Model\UrlPersistInterface $urlPersist
      * @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory
-     * @param Json|null $serializer
+     * @param \Magento\Framework\Serialize\Serializer\Json|null $serializer
      */
     public function __construct(
         \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider $childrenCategoriesProvider,
-        CategoryUrlRewriteGenerator $categoryUrlRewriteGenerator,
-        ProductUrlRewriteGenerator $productUrlRewriteGenerator,
-        UrlPersistInterface $urlPersist,
+        \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator $categoryUrlRewriteGenerator,
+        \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator $productUrlRewriteGenerator,
+        \Magento\UrlRewrite\Model\UrlPersistInterface $urlPersist,
         \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productCollectionFactory,
-        Json $serializer = null
+        \Magento\Framework\Serialize\Serializer\Json $serializer = null
     ) {
         $this->childrenCategoriesProvider = $childrenCategoriesProvider;
         $this->categoryUrlRewriteGenerator = $categoryUrlRewriteGenerator;
         $this->productUrlRewriteGenerator = $productUrlRewriteGenerator;
         $this->urlPersist = $urlPersist;
         $this->productCollectionFactory = $productCollectionFactory;
-        $this->serializer = $serializer ?: ObjectManager::getInstance()->get(Json::class);
+        $this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance()->get(
+            \Magento\Framework\Serialize\Serializer\Json::class
+        );
     }
 
     /**
      * Generate url rewrites for products assigned to category
      *
-     * @param Category $category
+     * @param \Magento\Catalog\Model\Category $category
      * @return array
      */
-    public function generateProductUrlRewrites(Category $category)
+    public function generateProductUrlRewrites(\Magento\Catalog\Model\Category $category)
     {
         $this->isSkippedProduct = [];
         $saveRewriteHistory = $category->getData('save_rewrites_history');
@@ -107,12 +101,16 @@ class UrlRewriteHandler
     }
 
     /**
-     * @param Category $category
+     * @param \Magento\Catalog\Model\Category $category
      * @param int $storeId
      * @param bool $saveRewriteHistory
      * @return UrlRewrite[]
      */
-    public function getCategoryProductsUrlRewrites(Category $category, $storeId, $saveRewriteHistory)
+    public function getCategoryProductsUrlRewrites(
+        \Magento\Catalog\Model\Category $category,
+        $storeId,
+        $saveRewriteHistory
+    )
     {
         /** @var \Magento\Catalog\Model\ResourceModel\Product\Collection $productCollection */
         $productCollection = $category->getProductCollection()
@@ -140,23 +138,23 @@ class UrlRewriteHandler
      * Retrieve generator, which use single category for different products
      *
      * @deprecated
-     * @return CategoryBasedProductRewriteGenerator|mixed
+     * @return \Magento\CatalogUrlRewrite\Model\CategoryBasedProductRewriteGenerator|mixed
      */
     private function getCategoryBasedProductRewriteGenerator()
     {
         if (!$this->categoryBasedProductRewriteGenerator) {
-            $this->categoryBasedProductRewriteGenerator = ObjectManager::getInstance()
-                ->get(CategoryBasedProductRewriteGenerator::class);
+            $this->categoryBasedProductRewriteGenerator = \Magento\Framework\App\ObjectManager::getInstance()
+                ->get(\Magento\CatalogUrlRewrite\Model\CategoryBasedProductRewriteGenerator::class);
         }
 
         return $this->categoryBasedProductRewriteGenerator;
     }
 
     /**
-     * @param Category $category
+     * @param \Magento\Catalog\Model\Category $category
      * @return void
      */
-    public function deleteCategoryRewritesForChildren(Category $category)
+    public function deleteCategoryRewritesForChildren(\Magento\Catalog\Model\Category $category)
     {
         $categoryIds = $this->childrenCategoriesProvider->getChildrenIds($category, true);
         $categoryIds[] = $category->getId();
@@ -164,13 +162,15 @@ class UrlRewriteHandler
             $this->urlPersist->deleteByData(
                 [
                     UrlRewrite::ENTITY_ID => $categoryId,
-                    UrlRewrite::ENTITY_TYPE => CategoryUrlRewriteGenerator::ENTITY_TYPE,
+                    UrlRewrite::ENTITY_TYPE =>
+                        \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator::ENTITY_TYPE,
                 ]
             );
             $this->urlPersist->deleteByData(
                 [
                     UrlRewrite::METADATA => $this->serializer->serialize(['category_id' => $categoryId]),
-                    UrlRewrite::ENTITY_TYPE => ProductUrlRewriteGenerator::ENTITY_TYPE,
+                    UrlRewrite::ENTITY_TYPE =>
+                        \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator::ENTITY_TYPE,
                 ]
             );
         }
diff --git a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php
index db6d0548fb7b81c4c0877053a24bf0eaccd0c3d9..66b18041977577f140800b9be54eb97016e1a404 100644
--- a/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php
+++ b/app/code/Magento/CatalogUrlRewrite/Test/Unit/Observer/UrlRewriteHandlerTest.php
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright © 2017 Magento. All rights reserved.
+ * Copyright © 2013-2017 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 namespace Magento\CatalogUrlRewrite\Test\Unit\Observer;
@@ -16,37 +16,37 @@ use Magento\Framework\Serialize\Serializer\Json;
 class UrlRewriteHandlerTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \Magento\CatalogUrlRewrite\Observer\UrlRewriteHandler
+     * @var UrlRewriteHandler
      */
     protected $urlRewriteHandler;
 
     /**
-     * @var \Magento\CatalogUrlRewrite\Model\Category\ChildrenCategoriesProvider|\PHPUnit_Framework_MockObject_MockObject
+     * @var ChildrenCategoriesProvider|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $childrenCategoriesProviderMock;
 
     /**
-     * @var \Magento\CatalogUrlRewrite\Model\CategoryUrlRewriteGenerator|\PHPUnit_Framework_MockObject_MockObject
+     * @var CategoryUrlRewriteGenerator|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $categoryUrlRewriteGeneratorMock;
 
     /**
-     * @var \Magento\CatalogUrlRewrite\Model\ProductUrlRewriteGenerator|\PHPUnit_Framework_MockObject_MockObject
+     * @var ProductUrlRewriteGenerator|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $productUrlRewriteGeneratorMock;
 
     /**
-     * @var \Magento\UrlRewrite\Model\UrlPersistInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var UrlPersistInterface|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $urlPersistMock;
 
     /**
-     * @var \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory|\PHPUnit_Framework_MockObject_MockObject
+     * @var CollectionFactory|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $collectionFactoryMock;
 
     /**
-     * @var \Magento\Framework\Serialize\SerializerInterface|\PHPUnit_Framework_MockObject_MockObject
+     * @var Json|\PHPUnit_Framework_MockObject_MockObject
      */
     private $serializerMock;