ViewCollection needs refactoring

The refactoring includes allowing `ViewCollection` to work with views with subtypes, so the PR solves what #362 was meant to.