Made the steps asynchronous.