client side validation integrated