added read from stream