Adds type and criteria validation via callback