better error checking on aio