sync doesn't use dispatch_sync