(feat) client side validation fully functional