In the above example, the combined_X object can be passed to a client that needs to narrow to either X or new_X. The server will have to implement both of these interfaces as long as both types of references exist, but once it knows that X should not be in use by any client (which we are assuming will happen, because the goal is to eliminate the interface) it can just return an exception if old me