implemented copy callback