2/3 deepcopy