full  validation