removed streaming, refactor!!!