Add protected constructor.
Define Stream as an interface.