For example, an implementor of a derived class of TModel will provide a corresponding derived class of TModelSelection that supports specification of the data contained within the model at a finer granularity than the whole model. This allows commands to be applied to a subset of the data in a model, rather than the entire model.