final refactor collection and view