Commands Refactor Part 2

We split #196 in two parts. this is the second. (#262 is the first). This builds on all the changes to commands/.
this seems confusing. without differentiating where each option comes from, it may be kind of weird. Are there examples that leverage this?