Updated deep copy constructor