Implementation of the Command Pattern that allows for single commands as well as chains of commands.  Undo / rollback is supported in both single commands and chains of commands