necessary upcasing