Rearranging Stream inheritance so that it will be easier to share code.