add file stream; and merged stream treat nil value + eos? as end of the merging upstream, need look into this later to fix confusion of the eos; change to use merge_streams to merge streams instead of calling a stream to merge another stream