wip
better lex/ply
fix tests