implement data replication