feat(form): add validation