I think the previous version type is type is stronger, it rules out subclasses