add sync function