public ICommandState PushState(CommandOutput commandOutput = null)
        {
            var state = commandOutput ?? new CommandOutput();

            OutputStack.Push(state);

            return(state);
        }
        public void PopState(CommandOutput commandOutput = null)
        {
            var popped = OutputStack.Pop();

            if (commandOutput == null)
            {
                OrderedOutput.Add(popped.Output);
            }
        }