public static CompoundCommand Create(ICommand command = null)
        {
            var self = new CompoundCommand();

            // Allow empty initialization
            if (command != null)
            {
                self._commandList.Add(command);
            }
            return(self);
        }
        public static CompoundCommand CreateMergable(ICommand command = null)
        {
            var self = new CompoundCommand();

            self._mergableByDefault = true;
            // Allow empty initialization
            if (command != null)
            {
                self._commandList.Add(command);
            }
            return(self);
        }