added read and write streams, still need to add tests