Made streams inherit from a virtual base class
Parser implementation decoupled
Updated example
documentation groups added