working on the stream interface some