 		if item._component.item is item
 			component.item = clone
 
-		# if it's an item (all items have to have an id),
-		# let's save it in the cloned component
+		# save object in the cloned component
 		if clone.id
-			# if this item extends another (only main item - that's why opts),
-			# we save it under the proper id's
 			if item._component.item is item
-				if parentComponent isnt component
-					parentComponent.setObject clone, clone.id
-				if not component.objects[component.itemId]
-					component.setObject clone, component.itemId
+				if belongsToComponent = item._component.belongsToComponent
+					components[belongsToComponent.id].setObject clone, clone.id
+				component.setObject clone, component.itemId
 			else
 				component.setObject clone, clone.id
 

				components[component.id] = component
				clone = cloneItem item, components, component

				for key, val of @objects
					baseObjects[key] ||= val
				for val, i in @objectsOrder
					component.objectsOrderSignalArr[i] = component.objectsOrder[i] ||= val



		component = new Component @
		component.mirror = not parentComponent
		component.belongsToComponent = parentComponent

		components = {}
		components[component.id] = component
