improve criteria.go