Lots of validation to prevent empty form responses. Closes #42 Closes #40