ViewCollection should allow view subtypes to be defined in a way that solves circular dependency problems