refactor + added read stream

we can set `stream=true` and have the request stream in as data