rewrote parser / tokenizer