Hey I'm wondering why you don't move all of this stuff onto `Client` and stop passing in the context.