Refactor all commands to be extension methods

Also add docs and TODOs