Added asynchronous support.