client validation works