HV-698 Implementing unwrap() methods to allow unwrapping to public super...

... types but not internal implementations