GenericCollection refactoring