Understanding Streams: Everything you need to know