better validation for hp