Refactor out finding / dynamically creating a new stream class

Would this make the feature complete?

I also noticed that all specs pass even if `generate_stream_class_name` returns any class name. Maybe the logic for generating a proper stream class should be moved to a new class, with tests.