Added validate route

Functionally complete, still needs some refactoring/tweaking.
Refactoring

Pulled each piece of the validation logic out into its own function.