Of thethreesolutions mentioned so far, I like yours the most - it's clean and flexible. The only downside is that you need to make the $Valid object available wherever you want to use the module. But, if you consider this to be in the league of "configuration data", then you would usually be doing that anyway, so no biggie.
thanks Tye
Comment on Re^2: Where to store class configuration settings in a module used by multiple applications (factory)