Simplifies much of the deep cloning with the DeepCloneHelper and adds tests