Refactored DeepCopy to use reflection