generalise all validation to be object based, inculsion can now handel simple and complex list