             withExtension:kJsonExtension)
         
         return resourceUrl
+    }
+    
+    class func factoryItem(jsonItem:AnyObject) -> ModelListItem?
+    {
+        guard
+            
+            let jsonMap:[String:AnyObject] = jsonItem as? [String:AnyObject],
+            let identifier:String = jsonMap[kKeyId] as? String,
+            let name:String = jsonMap[kKeyName] as? String,
+            let country:String = jsonMap[kKeyCountry] as? String,
+            let coord:[String:AnyObject] = jsonMap[kKeyCoord] as? [String:AnyObject],
+            let latitude:Double = coord[kKeyLat] as? Double,
+            let longitude:Double = coord[kKeyLon] as? Double
+            
+        else
+        {
+            return nil
+        }
+        
+        let item:ModelListItem = ModelListItem(
+            identifier:identifier,
+            name:name,
+            country:country,
+            latitude:latitude,
+            longitude:longitude)
+        
+        return item
     }
     
     func loadItems(completion:@escaping(() -> ()))

        {
            guard
            
                let item:ModelListItem = loadItem(
                    json:jsonItem)
            
            else
            {

        itemsLoaded(items:items)
        completion()
    }
}
