asynchronous initialize