added stream readers and writers