new doAsync method