Command Interface

This isn't ready for merge yet, PRing for code review/comments.
Nothing weird here, just need to make sure you properly construct your commands. This style of "if this field hasnt been initialized" isnt good IMO