fixed copy-move method