reform the way of caluculation of expression. use expr_hash instead of prev_expression