Graduand verification

Closes #162, closes #128 

Inconsistent style to be ignored, I've written to match the style guidelines rather than the code, as I'm refactoring all the code on a separate branch to make it neat.