Modifying GenericObjectCollection to take a pointer to a collection as a construction parameter