converted to non-blocking delays