Here's a question. Why does XHR hold the context? That bit of state seems like it should probably belong to Network or User.

I know that xhr is a transport, but should it be a stateful transport? Does it need to be? I'm not sure on the answer.