add Sync constructor