refactoring - introduced AbstractACollection