working on expression evaluation stuff