added the parser combinator structure