Implemented basic validation flow.

The various checks are initiated, but not all are actually implemented.
I've also made a rudimentary first pass at providing reasonable error
messages. These will be tweaked.