Implement ICommand for use in place of the abstract.
Better construction method for commands.
Clean up. Format.