upcast private subclasses