It never modifies the expression - why does it return it?