added better docs, implemented streams