The whole module works with asynchronous code and would be much tidier to use the `async` - `await` syntax.