Modified to use async through entire lib.