Replace ViewFactory with a ViewDescriptor