Yeah, some of this naming might be slightly awkward - it reflects me vacillating over whether to keep this generic or not. As it stands it's *almost* totally reusable for implementing other CLI clients, except for the note on environment variables/global options.