additional reordering of some methods and added more structure to BaseCollection