working pretty streamable solution