refactor collection