inital commit (with basic behavior)
allows to pass formatting options
adds behavior for the end of the stream
adds an example