add sync mechanism