Complex validation, first try