Streams are Object Orientated.

To implement your own stream you need to define an operations structure and the methods that apply to your stream. The core methods are: