Add error checking and re-flow to deal safely with failures
More efficient waiting