property collection refactoring