updated to fetch dynamically from Openweathermap with API key