     func forecastForLocationItem(locationItem: LocationItem, callback: ([WeatherDataItem]?, NSError?) -> Void) {
         if locationItem.weatherApiId > 0 {
             self.communicator.dailyForecastWeatherForLocationId(locationItem.weatherApiId, forDays: self.numberOfForecastedDays) {(json, error) in
-                var weatherDataItems: [WeatherDataItem] = []
+                var weatherDataItems: [WeatherDataItem]? = nil
                 if let json = json {
                     for subjson in json["list"].arrayValue {
-                        weatherDataItems.append(WeatherDataItem(subjson, locationItem: locationItem))
+                        weatherDataItems = (weatherDataItems ?? []) + [WeatherDataItem(subjson, locationItem: locationItem)]
                     }
                 }
                 callback(weatherDataItems, error)

        } else {
            let location = "\(locationItem.name),\(locationItem.isoCountryCode)"
            self.communicator.dailyForecastWeatherForLocation(location, forDays: self.numberOfForecastedDays) {(json, error) in
                var weatherDataItems: [WeatherDataItem] = []
                if let json = json {
                    for subjson in json["list"].arrayValue {
                        weatherDataItems.append(WeatherDataItem(subjson, locationItem: locationItem))
                    }
                }
                // FIXME: add weatherApiId to LocationItem

        
        if locationIds.count > 0 {
            self.communicator.currentWeatherForLocationIds(locationIds) {(json, error) in
                var weatherDataItems: [WeatherDataItem]? = nil
                if let json = json {
                    for (index, subjson) in enumerate(json["list"].arrayValue) {
                        weatherDataItems = (weatherDataItems ?? []) + [WeatherDataItem(subjson, locationItem: locationItems[index])]
                    }
                }
                callback(weatherDataItems, error)
            }
        } else {
            callback(nil, nil)
        }
    }
    
