added error messages, new styles, form validation