public void AddFilter(ICommandTargetFilter filter, double order)
        {
            if (filter == null)
            {
                throw new ArgumentNullException(nameof(filter));
            }
            if (IndexOf(filter) >= 0)
            {
                throw new ArgumentException("Filter has already been added to the list");
            }
            int index = GetNewFilterIndex(order);

            commandTargetInfos.Insert(index, new CommandTargetFilterInfo(filter, order));
            filter.SetNextCommandTarget(new NextCommandTarget(this, filter));
        }