                                 8*JSON_OBJECT_SIZE(4) + 8*JSON_OBJECT_SIZE(7) + 4*JSON_OBJECT_SIZE(17) + 4*JSON_OBJECT_SIZE(20) + 5360;
       DynamicJsonBuffer forecast(bufferSize);
       update_forecasts(forecast.parseObject(client));
-      client.stop();
       DBG(println(ESP.getFreeHeap()));
       DBG(println(F("Done")));
     } else
       ERR(println(F("Failed to fetch forecast!")));
-  }
-}
+    client.stop();
+  }
+}

      DynamicJsonBuffer buffer(bufferSize);
      if (update_conditions(buffer.parseObject(client), conditions))
        update_display(screen);
      client.stop();
      DBG(println(ESP.getFreeHeap()));
      DBG(println(F("Done")));
    } else
      ERR(println(F("Failed to fetch conditions!")));
  }

  if (now - last_fetch_forecasts > cfg.forecasts_interval) {

    return false;

  c.epoch = epoch;
  strncpy(c.icon, current_observation[F("icon")] | "", sizeof(c.icon));
  strncpy(c.weather, current_observation[F("weather")] | "", sizeof(c.weather));
  if (cfg.metric) {
    c.temp = current_observation[F("temp_c")];
    c.feelslike = atoi(current_observation[F("feelslike_c")] | "0");
    c.wind = current_observation[F("wind_kph")];
    c.atmos_pressure = atoi(current_observation[F("pressure_mb")] | "0");
  } else {
    c.temp = current_observation[F("temp_f")];
    c.feelslike = atoi(current_observation[F("feelslike_f")] | "0");
    c.wind = current_observation[F("wind_mph")];
    c.atmos_pressure = atoi(current_observation[F("pressure_in")] | "0");
  }
  c.humidity = atoi(current_observation[F("relative_humidity")] | "0");
  c.pressure_trend = atoi(current_observation[F("pressure_trend")] | "0");
  strncpy(c.wind_dir, current_observation[F("wind_dir")] | "", sizeof(c.wind_dir));;
  c.wind_degrees = current_observation[F("wind_degrees")];
  strncpy(c.city, current_observation[F("observation_location")][F("city")] | "", sizeof(c.city));
  JsonObject &sun = root[F("sun_phase")];
  strncpy(c.sunrise_hour, sun[F("sunrise")][F("hour")] | "", sizeof(c.sunrise_hour));
  strncpy(c.sunrise_minute, sun[F("sunrise")][F("minute")] | "", sizeof(c.sunrise_minute));
  strncpy(c.sunset_hour, sun[F("sunset")][F("hour")] | "", sizeof(c.sunset_hour));
  strncpy(c.sunset_minute, sun[F("sunset")][F("minute")] | "", sizeof(c.sunset_minute));
  JsonObject &moon = root[F("moon_phase")];
  strncpy(c.age_of_moon, moon[F("ageOfMoon")] | "", sizeof(c.age_of_moon));
  strncpy(c.moon_phase, moon[F("phaseofMoon")] | "", sizeof(c.moon_phase));
  strncpy(c.moonrise_hour, moon[F("moonrise")][F("hour")] | "", sizeof(c.moonrise_hour));
  strncpy(c.moonrise_minute, moon[F("moonrise")][F("minute")] | "", sizeof(c.moonrise_minute));
  strncpy(c.moonset_hour, moon[F("moonset")][F("hour")] | "", sizeof(c.moonset_hour));
  strncpy(c.moonset_minute, moon[F("moonset")][F("minute")] | "", sizeof(c.moonset_minute));
  return true;
}

