added pipe function and Stream.write
add some comments for the pipe function
rename combine to merge