comprehensive validation