fixed shallowcopy