add _type_ and _models_ virtuals