the first change is that our recursive evaluate_expression procedure now takes 2 arguments: the abstract syntax tree--and the environment because we've just established that the meaning of an expression depends on the context in the world--depends on the environment.