add sync()