better configuration and async