refactor add SyncFunc to interfrface