implement ToExpression