changed collection back to abstract class