sketch of the parser