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

            if let placemark = placemark {
                let location = "\(placemark.locality),\(placemark.ISOcountryCode)"
                self.communicator.dailyForecastWeatherForLocation(location, forDays: self.numberOfForecastedDays) {(json, error) in
                    var weatherDataItems: [WeatherDataItem] = []
                    if let json = json {
                        for (index, subjson) in enumerate(json["list"].arrayValue) {
                            weatherDataItems.append(WeatherDataItem(subjson, placemark: placemark))
                        }
                    }
                    callback(weatherDataItems, error)

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