functional elements added to parser and lexer