add ReadStream class (incomplete)