change weather_data -> observable in observers and use pull instead of push