Add async library
Refactor to make more readable and to use async lib