implemented  expression evaluation and fixed a bug with name equivalence