enhanced validation