Minor refactorings

I did that thing where I tweak things as I read through code in order to clarify my own understanding.

I have no idea whether these tweaks are of interest to you, so I added each of them in separate commits to make it easier to pick and choose.

If you like any of this, let me know what to keep or what to ditch, and I'll squash and resubmit.

I've got another PR coming that implements the call to the /engage endpoint, but I need to clean that up based on whatever happens in this one.

Thanks!