Implement smart-copy