procedure sync/async, fix