complete client-side validations