                 JSONSerialization.ReadingOptions.allowFragments)
         }
         catch
+        {
+            return nil
+        }
+        
+        return json
+    }
+    
+    //MARK: private
+    
+    private func dispatchLoadItems(completion:@escaping(() -> ()))
+    {
+        guard
+            
+            let url:URL = ModelList.factoryResourceUrl(),
+            let data:Data = loadData(url:url),
+            let json:Any = loadJson(data:data)
+            
+        else
         {
             return
         }

    private static let kKeyLat:String = "lat"
    private static let kKeyLon:String = "lon"
    
    func loadItems(completion:@escaping(() -> ()))
    {
        DispatchQueue.global(qos:DispatchQoS.QoSClass.background).async

        }
    }
    
    func loadData(url:URL) -> Data?
    {
        let data:Data
        
        do
        {
            try data = Data(contentsOf:url)
        }
        catch
        {
            return nil
        }
        
        return data
    }
    
    func loadJson(data:Data) -> Any?
    {
        let json:Any
        
        do
