Ray, Replies like yours are the reason I love this web site, well thought out, constructive and strictly in the vein of the problem. Thanks you. I think I have a partially thought out solution... If I serialize class A and want to add members to it then I should derive A using class B and add the members there. I can call A.Serialize from B.SerializeOldVersion, get me? Then I can B.Serialize and B.Deserialize and all my new members will be handled correcly. OK, its partially thought out because if there are relating objects then those relationships could mudy the water somewhat. But in theory, this meets the "don't change your interfaces" school of thought. I think deriving would certainly be the way through to data conversion though, then effectively you can roll all the stuff up into one class again. My ambitious thoughts are in this area though. As I am using SOAP format for serialization as oppose to binary format, at least for the time being (there's nothing quite like being able to see your megabytes of data in text format hehehe) well...to cut a long one short, there ought to be a structured way of massaging the data. i.e. you could write an XML parser, which a very good friend of ours on here has done recently, and insert the new fields where neccessary...then hey presto. I think there is definite potential in this approach. Again, your additional thoughts are very welcome. Many thanks. Nursey