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/.
Done in b17e40e55be5c8ab89b09c56fe3a02c3fb5812af