--- a/src/rcldb/synfamily.h
+++ b/src/rcldb/synfamily.h
@@ -25,9 +25,9 @@
  * can provide different applications each with a family of keyspaces.
  * Two characters are reserved by the class and should not be used inside 
  * either family or member names: ':' and ';'
- * A synonym key for family "stemdb", member "french", key "thisstem" 
+ * A synonym key for family "stemdb", member "french", key "somestem" 
  * looks like:
- *  :stemdb:french:stem  -> stem siblings
+ *  :stemdb:french:somestem  -> somestem expansions
  * A special entry is used to list all the members for a family, e.g.:
  *  :stemdb;members  -> french, english ...
  */
@@ -47,29 +47,30 @@
     XapSynFamily(Xapian::Database xdb, const std::string& familyname)
 	: m_rdb(xdb)
     {
-	m_prefix1 = string(":") + familyname;
+	m_prefix1 = std::string(":") + familyname;
     }
 
     /** Expand one term (e.g.: familier) inside one family number (e.g: french)
      */
-    bool synExpand(const std::string& fammember,
-		   const std::string& term,
+    virtual bool synExpand(const std::string& fammember,
+		   const std::string& key,
 		   std::vector<std::string>& result);
 
     /** Retrieve all members of this family (e.g: french english german...) */
-    bool getMembers(std::vector<std::string>&);
+    virtual bool getMembers(std::vector<std::string>&);
 
     /** debug: list map for one member to stdout */
-    bool listMap(const std::string& fam); 
+    virtual bool listMap(const std::string& fam); 
 
 protected:
     Xapian::Database m_rdb;
     std::string m_prefix1;
-    string entryprefix(const string& member)
+
+    virtual std::string entryprefix(const std::string& member)
     {
 	return m_prefix1 + ":" + member + ":";
     }
-    string memberskey()
+    virtual std::string memberskey()
     {
 	return m_prefix1 + ";" + "members";
     }
@@ -86,22 +87,32 @@
 
     /** Delete all entries for one member (e.g. french), and remove from list
      * of members */
-    bool deleteMember(const std::string& membername);
+    virtual bool deleteMember(const std::string& membername);
 
     /** Add to list of members. Idempotent, does not affect actual expansions */
-    bool createMember(const std::string& membername);
+    virtual bool createMember(const std::string& membername);
 
     /** Add expansion list for term inside family member (e.g., inside
      *  the french member, add expansion for familier -> familier,
      * familierement, ... */
-    bool addSynonyms(const string& membername, 
-		     const string& term, const vector<string>& trans);
+    virtual bool addSynonyms(const std::string& membername, 
+			     const std::string& term, 
+			     const std::vector<std::string>& trans);
 
 protected:
     Xapian::WritableDatabase m_wdb;
 };
 
 
+//
+// Prefixes are centrally defined here to avoid collisions
+//
+// Stem expansion family prefix. The family member name is the language
+static const std::string synFamStem("Stm");
+static const std::string synFamDiac("Dia");
+static const std::string synFamCase("Cse");
+
+
 }
 
 #endif /* _SYNFAMILY_H_INCLUDED_ */