Introduce weather api abstraction