in async completion order is rarely guaramteed