extract parsing of body text into a separate parser class
make parser API consistent - parsers should 'parse'