deepCopy complete, all unit tests passed, closes #6