Abstract the process of creating channels so I can inject a serial channel
Switch streams to iterators to remove memoization and increase efficiency