@Override
 public Object evaluate(Expression expression, Environment env) {
   ctx.setEnvironment(env);
   return expression.interpret(ctx);
 }