add a interface only no action replication->copy_from functor