Added client-side validation and helper tooltip