Per discussion with @bjhaid. I think `Stream.resource/3` would do the trick https://hexdocs.pm/elixir/Stream.html#resource/3 This should address #145 and #141