single-thread sync for now