rewrite some of expression parsing, make assignments and variables more gooder