add basic error messages and allow middle_name