add sync logic