added form functionality, error highlighting, more input types