much more robust validation now includes closures and seems to work!