In the case I described the code is in a subclass a Xojo class
The idea here is to INSERT a new subclass between the existing subclass and the new one. And the newly inserted subclass will expose things in a way the OLD existing code wont break
So we never touch the old code
We just modify the inheritance chain in a way we can then alter how things behave
So in his case we can add a new subclass of EmailMessage that exposes the Source as a Method pair ( get & set) and then make the existing class inherit from our new class
And the existing code will then JUST work without ever having had to alter any of it
Next time you have an issue like this consider that as an option !