I think it's good that the functionality of the onDemand thread group now exists.
I just wonder why it was not done as an option on the existing thread group? Seems to me that would be simpler - and also easier to convert existing test plans if required (or indeed convert back). Is there a reason why the functionality has to be done as a separate class, or could the code be incorporated into the existing thread group?
