full client validation