program to an interface
merge two stream