Refactor to use IExpressionNode