modified client-side validation
ref: #20