>Thank you for the clear explanation to my question. Just one final question: So the only reason those methods run is due to the _assign designation and protected has nothing to do with it?
Yes, that is my understanding.
IMO, assign and access methods can sometimes be useful, for instance, to allow assigning different variable types (like the built-in TableUpdate() function, that allows numeric and logical parameters). An _assign method, in this case, can convert .F. to 0, and .T. to 1, for instance, in one of your classes.
Hilmar.
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)