less dependence on Expr