no more deepcopy in the code