#enh use cond[key]
#enh ordering (not completed)