use more async/await and less threads