refactor client calling
use config[:async] to do asynchronous calls, improve logging