basic validation

This is some basic validation.  There are a few different ways it could probably go but at least the core of it is there to start things rolling.