refactoring in Expr