Commands

Fixes #42 

I still need to add more Command+Consumer specific tests, but this has so many changes in it I'd prefer to merge this ASAP.
haha, I like using the filesystem join to create the paths...