use more full featured http client and some monad headfucking