minor cleanup
generalize piped request and fetch forecast