Allow to specify the maximum number of concurrent requests; some refactoring to use async lib