add copy, some other changes