Validating constructor pattern?

I use validate_change for the embedded maps, which takes function as validator. This way you can compose validations pretty much for any imaginable structure.