Eight Lakes TODO: Work on fixing on error messaging context. Refactor with data monad? (CommandReference<T>) Add more tests.