Re factor ExpressionBase implementation