                 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)
+    }
 }

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

        }
    }
    
    private class func createElementGeneric(
        vitaItem:MVitaItemInElement,
        directory:DVitaItemDirectory,
        database:Database,
        dispatchGroup:DispatchGroup)
    {
        database.create
            { (element:DVitaItemElement) in
                
