Fancy lexer and parser stuff, new version