I was avoiding circular require and I also felt it made sense to encapsulate the class within Stream. Maybe it should be nested?