I am writing a program that receives objects inheriting an interface IThing say, and converts them to a new object ConvertedThing. The problem is that the conversion process