progress; nearly working lexer/parser