queue up async function calls without the overhead