Added doAsync helper function