changed structure to use a batch_parser, and a streaming_parser class, with a unified base_class, along with respective tests