Say an EJB has a method getResponseDTO() that returns an interface type, IResponseDTO. The method is called by a remote client. When the client gets the result, how does it know how to deserialize the IResponseDTO? There must be something in the serialized object that indicates what implementation the IResponseDTO should be implemented by, right? So that means that the remote client will need a version of implementation class that is in synch with the EJB server's version, right?