Use async channels to save