refactor simpleCopy to shallowCopy