Make generation step fully async