refactor Collection classes (3)