I tend to find this design too frameworkish an OO for me also it adds a lot of a public methods to the CV objects. Should we accept this PR all these method should be private and the base class PartitionIterator should be too PartitionIterator-> _PartitionIterator