We may want to be careful with criterion.name and options in the id; do we use these ids? If not, they could be problemtic since the names could have spaces in them.