fleshing out the parser