Working around ValidationError issues

* I'm still not sure about how dicts are supposed to work inside ValidationError
* the messages attribute is a bit magical
* Will give this one last look over the following evening before merging this...