please keep MemberwiseClone() and handle DeserializationCallback additionally. Copying properties one-by-one is unmaintainable.