Index: addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/model/ClassificationModel.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/model/ClassificationModel.java	(revision 1748)
+++ addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/model/ClassificationModel.java	(revision )
@@ -25,20 +25,22 @@
 
     private ClassificationDao dao;
     private IModel<Node> nodeModel;
+    private String fieldPath;
 
-    public ClassificationModel(ClassificationDao dao, IModel<Node> nodeModel) {
+    public ClassificationModel(ClassificationDao dao, IModel<Node> nodeModel, String fieldPath) {
         this.dao = dao;
         this.nodeModel = nodeModel;
+        this.fieldPath = fieldPath;
     }
 
     @Override
     public Classification getObject() {
-        return dao.getClassification(nodeModel.getObject());
+        return dao.getClassification(nodeModel.getObject(), fieldPath);
     }
 
     @Override
     public void setObject(Classification object) {
-        dao.save(object);
+        dao.save(object, fieldPath);
     }
     
     @Override
Index: addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/model/ClassificationDao.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/model/ClassificationDao.java	(revision 1748)
+++ addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/model/ClassificationDao.java	(revision )
@@ -28,6 +28,10 @@
     
     Classification getClassification(Node node);
 
+    Classification getClassification(Node node, String fieldPath);
+
     void save(Classification classification);
+
+    void save(Classification classification, String fieldPath);
 
 }
Index: addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/TaxonomyPickerPlugin.properties
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/TaxonomyPickerPlugin.properties	(revision 1748)
+++ addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/TaxonomyPickerPlugin.properties	(revision )
@@ -1,4 +1,5 @@
 title = Taxonomy
+title2 = Taxonomy Minos
 no-items = Click to add taxonomy terms
 edit = Select taxonomy terms
 invalid.taxonomy.category.key = Invalid category key
\ No newline at end of file
Index: addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/MixinClassificationDaoPlugin.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/MixinClassificationDaoPlugin.java	(revision 1748)
+++ addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/MixinClassificationDaoPlugin.java	(revision )
@@ -47,6 +47,10 @@
     }
 
     public Classification getClassification(Node node) {
+        return getClassification(node, TaxonomyNodeTypes.HIPPOTAXONOMY_KEYS);
+    }
+
+    public Classification getClassification(Node node, String fieldPath) {
         List<String> values;
         String nodePath = null;
         String canonicalKeyValue = null;
@@ -54,9 +58,9 @@
             nodePath = node.getPath();
 
             if (JcrHelper.isNodeType(node, TaxonomyNodeTypes.NODETYPE_HIPPOTAXONOMY_CLASSIFIABLE)) {
-                if (node.hasProperty(TaxonomyNodeTypes.HIPPOTAXONOMY_KEYS)) {
+                if (node.hasProperty(fieldPath)) {
                     values = new ArrayList<String>(new JcrValueList<String>(
-                            new JcrPropertyModel<String>(node.getProperty(TaxonomyNodeTypes.HIPPOTAXONOMY_KEYS)), PropertyType.STRING));
+                            new JcrPropertyModel<String>(node.getProperty(fieldPath)), PropertyType.STRING));
                 } else {
                     values = new LinkedList<String>();
                 }
@@ -75,6 +79,10 @@
     }
 
     public void save(Classification classification) {
+        save(classification, TaxonomyNodeTypes.HIPPOTAXONOMY_KEYS);
+    }
+
+    public void save(Classification classification, String fieldPath) {
         String nodePath = null;
         final JcrNodeModel id = (JcrNodeModel) classification.getId();
         try {
@@ -83,7 +91,7 @@
 
             if (JcrHelper.isNodeType(node, TaxonomyNodeTypes.NODETYPE_HIPPOTAXONOMY_CLASSIFIABLE)) {
                 List<String> keys = classification.getKeys();
-                node.setProperty(TaxonomyNodeTypes.HIPPOTAXONOMY_KEYS, keys.toArray(new String[keys.size()]));
+                node.setProperty(fieldPath, keys.toArray(new String[keys.size()]));
                 if (JcrHelper.isNodeType(node, TaxonomyNodeTypes.NODETYPE_HIPPOTAXONOMY_CANONISED)) {
                     String canonKey = classification.getCanonical();
                     // when null, save empty string because it is mandatory at JCR level (see hippotaxonomy.cnd)
Index: addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/TaxonomyPickerPlugin.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/TaxonomyPickerPlugin.java	(revision 1748)
+++ addon/frontend/src/main/java/org/onehippo/taxonomy/plugin/TaxonomyPickerPlugin.java	(revision )
@@ -49,6 +49,7 @@
 import org.hippoecm.frontend.service.render.RenderPlugin;
 import org.onehippo.taxonomy.api.Category;
 import org.onehippo.taxonomy.api.Taxonomy;
+import org.onehippo.taxonomy.api.TaxonomyNodeTypes;
 import org.onehippo.taxonomy.plugin.api.TaxonomyHelper;
 import org.onehippo.taxonomy.plugin.model.Classification;
 import org.onehippo.taxonomy.plugin.model.ClassificationDao;
@@ -85,7 +86,7 @@
                 List<IModel<String>> models = Collections.emptyList();
                 return models.iterator();
             }
-            Classification classification = dao.getClassification(TaxonomyPickerPlugin.this.getModelObject());
+            Classification classification = dao.getClassification(TaxonomyPickerPlugin.this.getModelObject(), fieldPath);
             final Iterator<String> upstream = classification.getKeys().iterator();
             return new Iterator<IModel<String>>() {
 
@@ -155,23 +156,27 @@
     }
 
     private ClassificationDao dao;
+    private String fieldPath;
 
     public TaxonomyPickerPlugin(final IPluginContext context, final IPluginConfig config) {
         super(context, config);
 
         add(CSSPackageResource.getHeaderContribution(TaxonomyPickerPlugin.class, "res/style.css"));
 
-        add(new Label("title", new ResourceModel("title")));
+        String captionKey = config.getString("captionKey", "title");
+        add(new Label("title", new ResourceModel(captionKey)));
 
         dao = context.getService(config.getString(ClassificationDao.SERVICE_ID), ClassificationDao.class);
         if (dao == null) {
-            log.warn("No DAO found to retrieve classification");
+            log.warn("No DAO found to retrieve classification, using service id: {}", ClassificationDao.SERVICE_ID);
         }
 
+        fieldPath = config.getString("fieldPath", TaxonomyNodeTypes.HIPPOTAXONOMY_KEYS);
+
         final Mode mode = Mode.fromString(config.getString("mode", "view"));
         if (dao != null && mode == Mode.EDIT) {
             add(new CategoryListView("keys"));
-            final ClassificationModel model = new ClassificationModel(dao, getModel());
+            final ClassificationModel model = new ClassificationModel(dao, getModel(), fieldPath);
             IDialogFactory dialogFactory = new IDialogFactory() {
 
                 private static final long serialVersionUID = 1L;
@@ -194,8 +199,8 @@
                         if (baseRef != null) {
                             IModel<Node> baseModel = baseRef.getModel();
                             if (baseModel != null) {
-                                List<String> currentKeys = dao.getClassification(getModel().getObject()).getKeys();
-                                List<String> baseKeys = dao.getClassification(baseModel.getObject()).getKeys();
+                                List<String> currentKeys = dao.getClassification(getModel().getObject(), fieldPath).getKeys();
+                                List<String> baseKeys = dao.getClassification(baseModel.getObject(), fieldPath).getKeys();
                                 return LCS.getChangeSet(baseKeys.toArray(new String[baseKeys.size()]), currentKeys
                                         .toArray(new String[currentKeys.size()]));
                             }
@@ -218,7 +223,7 @@
             protected CanonicalCategory load() {
                 Taxonomy taxonomy = getTaxonomy();
                 if (taxonomy != null) {
-                    Classification classification = dao.getClassification(TaxonomyPickerPlugin.this.getModelObject());
+                    Classification classification = dao.getClassification(TaxonomyPickerPlugin.this.getModelObject(), fieldPath);
                     return new CanonicalCategory(taxonomy, classification.getCanonical(), getPreferredLocale());
                 } else {
                     return null;
