use an async queue that dispatches progress events