The difficult part of the logic is outsourced to TemplateList::indexProperty, all SVM itself has to do is call that, and store the mapping tables (actually there is no reason for svm to store the string->int map, it only needs to store the int->QVariant one)