added example of an abstract interface; let's define out parsers like this