I can't help but wonder if the XHR stuff should be pulled out of the env and into its own thing. It's clearly got a bit of an api to use properly and you've wrapped up the functionality. I'm -0 on the living in go.js.