Agreed this is the way forward. Only way to let people who don't care about safety to continue to not do so. Also need things like contract invalidation for callbacks. Still no idea how we'll deal with virtual types.