implement cmpsync