First take on client-side validation