     {
         guard
             
-            let itemTreat:MVitaItemTreat = self.itemTreat
+            let itemTreat:MVitaItemTreat = currentItem?.treat
             
         else
         {

            return
        }
        
        self.itemFileName = itemFileName
        
        restart()
        changeStatus(
            statusType:MVitaLinkStrategyRequestItemTreatDateModified.self)
        model?.linkCommand.requestItemDateModified(

    private func changeStatus(
        statusType:MVitaLinkStrategyRequestItemTreatProtocol.Type)
    {
        restart()
        
        let status:MVitaLinkStrategyRequestItemTreatProtocol = statusType.init()
        self.status = status
    }
    
    private func requestItem(
        rawElement:UInt32)
    {
        guard
        
            let parentTreat:MVitaItemTreat = currentItem?.treat
        
        else
        {
            return
        }
        
        let itemTreat:MVitaItemTreat = MVitaItemTreat.factoryTreat(
            parentTreat:parentTreat,
            treatId:rawElement)
        
        createNewItem(itemTreat:itemTreat)
        requestItemFormat(itemTreat:itemTreat)
    }
    
    private func createNewItem(
        itemTreat:MVitaItemTreat)
    {
        let newItem:MVitaItemIn = MVitaItemIn(
            treat:itemTreat,
            parent:currentItem)
        currentItem?.addElement(element:newItem)
        currentItem = newItem
        
        if rootItemIn == nil
        {
            rootItemIn = currentItem
        }
    }
    
    private func nextElement()
    {
        guard
        
            let rawElement:UInt32 = currentItem?.rawElements?.popLast()
        
        else
        {
            currentItemFinished()
            
            return
        }
        
        requestItem(rawElement:rawElement)
    }
    
    private func currentItemFinished()
    {
        guard
        
            let parent:MVitaItemIn = currentItem?.parent
        
        else
        {
            allItemsFinished()
            
            return
        }
        
        currentItem = parent
        nextElement()
    }
    
    private func allItemsFinished()
    {
        print("finished all items")
    }
    
    //MARK: internal
