         {
             guard
             
-                let item:ModelListItem = loadItem(
-                    json:jsonItem)
+                let item:ModelListItem = ModelList.factoryItem(
+                    jsonItem:jsonItem)
             
             else
             {

        itemsLoaded(items:items)
        completion()
    }
    
    private func loadItem(json:AnyObject) -> ModelListItem?
    {
        guard
        
            let jsonMap:[String:AnyObject] = json as? [String:AnyObject],
            let identifier:String = jsonMap[ModelList.kKeyId] as? String,
            let name:String = json[ModelList.kKeyName] as? String,
            let country:String = json[ModelList.kKeyCountry] as? String,
            let coord:[String:AnyObject] = json[ModelList.kKeyCoord] as? [String:AnyObject],
            let latitude:Double = coord[ModelList.kKeyLat] as? Double,
            let longitude:Double = coord[ModelList.kKeyLon] as? Double
        
        else
        {
            return nil
        }
        
        
        let item:ModelListItem = ModelListItem(
            identifier:identifier,
            name:name,
            country:country,
            latitude:latitude,
            longitude:longitude)
        
        return item
    }
}

            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(() -> ()))
