redo parser
rework tokenizer