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/.
what is `j`?. this is not an obvious loop iteration. there's funky incrementing going on. name it something clearer.