implemented my smart copy