Add better errors, make 3-model form for signing up