with most async calls, you invoke once and then check status in a loop. here, you seem to be invoking inside the loop. is this correct?