complete validation