my point is that if I see "sometextbox.mask = dm" .... That doesn't tell me what the mask is... I've lost the readability... you're requiring me to go back to where you instantiated dm to figure out what dm is... and then what the mask it. In a short procedure, it's a minor thing... but in a longer procedure... it could be an issue... and if I need more than one masking in the proc... now I need two variables... dmPhone, dmZipCode.... bah! ... I still don't see why a simple shared property that returns a simple string doesn't work.

but hey, what ever boats your float.

-tg