first version of the parser