complete validation framework