replace sync reads with async