A more distinct seperation of concerns. While it's hard to give any direct advice without seeing the code, I would suggest making a third type to handle conversions, rather than having the two types handle it themselves.
Again without seeing a specific code example it's hard to say if there's an even more elegant way to solve this.
Again without seeing a specific code example it's hard to say if there's an even more elegant way to solve this.