Per prior comment, what if this passes in the target and use some of the if string => process file name. If hash, do you magic on the hash as done in the #register method, or something like that. I think passing whatever is specifically being validated in as the target of validation will make things more understandable. Thoughts?