Refactor the Stream stuff in Progress, make the abstraction restricted to a smaller area and change some type variables