made streaming fully async