Validate improve

this logic should probably move to ``getFieldsInfo()``