         }
     }
     
-    //MARK: internal
-    
-    class func createElement(
+    private class func createElementGeneric(
         vitaItem:MVitaItemInElement,
         directory:DVitaItemDirectory,
-        directoryPath:URL,
         database:Database,
         dispatchGroup:DispatchGroup)
     {
-        
-        
-        dispatchGroup.enter()
-        
         database.create
             { (element:DVitaItemElement) in
                 

extension MVitaLink
{
    //MARK: private
    
    private class func storeElement(
        vitaItem:MVitaItemInElement,

                dispatchGroup.leave()
        }
    }
    
    private class func createElementSfo(
        vitaItem:MVitaItemInElement,
        directory:DVitaItemDirectory,
        database:Database,
        dispatchGroup:DispatchGroup)
    {
        database.create
            { (element:DVitaItemElement) in
                
                element.directory = directory
                element.config(
                    itemElement:vitaItem)
                
                dispatchGroup.leave()
        }
    }
    
    private class func createElementPng(
        vitaItem:MVitaItemInElement,
        directory:DVitaItemDirectory,
        database:Database,
        dispatchGroup:DispatchGroup)
    {
        database.create
            { (element:DVitaItemElement) in
                
                element.directory = directory
                element.config(
                    itemElement:vitaItem)
                
                dispatchGroup.leave()
        }
    }
    
    //MARK: internal
    
    class func createElement(
        vitaItem:MVitaItemInElement,
        directory:DVitaItemDirectory,
        directoryPath:URL,
        database:Database,
        dispatchGroup:DispatchGroup)
    {
        do
        {
            try storeElement(
                    vitaItem:vitaItem,
                    directoryPath:directoryPath)
        }
        catch
        {
            return
        }
        
        
        
        
        
        dispatchGroup.enter()
        createElement(
            vitaItem:vitaItem,
            directory:directoryPath,
            database:database,
            dispatchGroup:dispatchGroup)
    }
}
