Thoughts, tips and rants from a professional programmer
Reflection snippet:
Type t = Type.GetType(kid.Attributes["type"].Value); ... object o = t.Assembly.CreateInstance(t.FullName);