Added GenericCollection as new approach to MaterialCollection