Index: tmp/org.txm.index.core/src/org/txm/index/core/preferences/IndexPreferences.java
===================================================================
--- tmp/org.txm.index.core/src/org/txm/index/core/preferences/IndexPreferences.java	(revision 1025)
+++ tmp/org.txm.index.core/src/org/txm/index/core/preferences/IndexPreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.index.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TXMPreferences;
 
@@ -14,23 +12,32 @@
  */
 public class IndexPreferences extends TXMPreferences {
 
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(IndexPreferences.class).getSymbolicName();
-	
-	
 	/**
 	 * 
 	 */
 	public static final String PROPERTIES_SEPARATOR = "properties_separator"; //$NON-NLS-1$
 	
 	/**
-	 * 
+	 * Number of the line of the current page.
 	 */
 	public static final String N_TOP_INDEX = "n_top_index"; //$NON-NLS-1$
 
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(IndexPreferences.class)) {
+			new IndexPreferences();
+		}
+		return TXMPreferences.instances.get(IndexPreferences.class);
+	}
+
+	
 	@Override
 	public void initializeDefaultPreferences() {
 	
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		preferences.put(UNIT_PROPERTIES, DEFAULT_UNIT_PROPERTY); //$NON-NLS-1$
 		preferences.put(UNIT_PROPERTY, DEFAULT_UNIT_PROPERTY); //$NON-NLS-1$
 		preferences.put(PROPERTIES_SEPARATOR, "_"); //$NON-NLS-1$
Index: tmp/org.txm.cooccurrence.core/src/org/txm/cooccurrence/core/preferences/CooccurrencePreferences.java
===================================================================
--- tmp/org.txm.cooccurrence.core/src/org/txm/cooccurrence/core/preferences/CooccurrencePreferences.java	(revision 1025)
+++ tmp/org.txm.cooccurrence.core/src/org/txm/cooccurrence/core/preferences/CooccurrencePreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.cooccurrence.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TXMPreferences;
 
@@ -15,10 +13,6 @@
  */
 public class CooccurrencePreferences extends TXMPreferences {
 
-
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(CooccurrencePreferences.class).getSymbolicName();
-
 	/** The Constant SCOREFORMAT. */
 	public static final String SCORE_FORMAT = "score_format"; //$NON-NLS-1$
 	
@@ -43,15 +37,20 @@
 
 	
 	/**
-	 * 
+	 * Gets the instance.
+	 * @return the instance
 	 */
-	public CooccurrencePreferences() {
-		// TODO Auto-generated constructor stub
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(CooccurrencePreferences.class)) {
+			new CooccurrencePreferences();
+		}
+		return TXMPreferences.instances.get(CooccurrencePreferences.class);
 	}
 
+
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		
 		preferences.put(SCORE_FORMAT, "E00"); //$NON-NLS-1$
 		preferences.putInt(F_MIN, 2);
Index: tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/preferences/LexicalTablePreferencePage.java
===================================================================
--- tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/preferences/LexicalTablePreferencePage.java	(revision 1025)
+++ tmp/org.txm.lexicaltable.rcp/src/org/txm/lexicaltable/rcp/preferences/LexicalTablePreferencePage.java	(revision 1026)
@@ -63,7 +63,7 @@
 
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(LexicalTablePreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(LexicalTablePreferences.getInstance().getPreferencesNodeQualifier()));
 		this.setTitle(LexicalTableCoreMessages.RESULT_TYPE);
 		this.setImageDescriptor(LexicalTableAdapterFactory.ICON);
 	}
Index: tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/handlers/ComputeAHC.java
===================================================================
--- tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/handlers/ComputeAHC.java	(revision 1025)
+++ tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/handlers/ComputeAHC.java	(revision 1026)
@@ -41,7 +41,6 @@
 import org.txm.ca.core.functions.CA;
 import org.txm.ca.core.preferences.CAPreferences;
 import org.txm.ca.rcp.editors.CAParametersDialog;
-import org.txm.ca.rcp.messages.CAUIMessages;
 import org.txm.chartsengine.rcp.editors.ChartEditor;
 import org.txm.core.messages.TXMCoreMessages;
 import org.txm.core.preferences.TXMPreferences;
@@ -108,8 +107,8 @@
 			}
 			try {
 				String title = AHCUIMessages.bind(AHCUIMessages.ComputeCAH_0, partition.getName());
-				int vMax = TXMPreferences.getInt(TXMPreferences.V_MAX, CAPreferences.PREFERENCES_NODE);
-				int fMin = TXMPreferences.getInt(TXMPreferences.F_MIN, CAPreferences.PREFERENCES_NODE);
+				int vMax = CAPreferences.getInstance().getInt(TXMPreferences.V_MAX);
+				int fMin =  CAPreferences.getInstance().getInt(TXMPreferences.F_MIN);
 				Shell shell = Display.getCurrent().getActiveShell();
 				CAParametersDialog d = new CAParametersDialog(shell, partition.getParent(), title);
 				d.setFminAndVMax(fMin, vMax);
Index: tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/preferences/AHCPreferencePage.java
===================================================================
--- tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/preferences/AHCPreferencePage.java	(revision 1025)
+++ tmp/org.txm.ahc.rcp/src/org/txm/ahc/rcp/preferences/AHCPreferencePage.java	(revision 1026)
@@ -88,7 +88,7 @@
 
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(AHCPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(AHCPreferences.getInstance().getPreferencesNodeQualifier()));
 		//setDescription("AHC");
 		this.setTitle(AHCCoreMessages.RESULT_TYPE);
 		this.setImageDescriptor(AHCAdapterFactory.ICON);
Index: tmp/org.txm.treetagger.core/src/org/txm/treetagger/core/TreeTaggerEngine.java
===================================================================
--- tmp/org.txm.treetagger.core/src/org/txm/treetagger/core/TreeTaggerEngine.java	(revision 1025)
+++ tmp/org.txm.treetagger.core/src/org/txm/treetagger/core/TreeTaggerEngine.java	(revision 1026)
@@ -20,19 +20,19 @@
 	@Override
 	public boolean isRunning() {
 		
-		ttBinaryDirectory = new File(TreeTaggerPreferences.getString(TreeTaggerPreferences.INSTALL_PATH, TreeTaggerPreferences.PREFERENCES_NODE)+"/bin/");
+		ttBinaryDirectory = new File(TreeTaggerPreferences.getInstance().getString(TreeTaggerPreferences.INSTALL_PATH)+"/bin/");
 		if (!ttBinaryDirectory.exists()) {
 			System.out.println("Error: path to TreeTagger is wrong: "+ttBinaryDirectory);
 			return false;
 		}
 		
-		ttModelsDirectory = new File(TreeTaggerPreferences.getString(TreeTaggerPreferences.MODELS_PATH, TreeTaggerPreferences.PREFERENCES_NODE));
+		ttModelsDirectory = new File(TreeTaggerPreferences.getInstance().getString(TreeTaggerPreferences.MODELS_PATH));
 		if (!ttModelsDirectory.exists()) {
 			System.out.println("Error: path to TreeTagger path is wrong: "+ttModelsDirectory);
 			return false;
 		}
 		
-		options = TreeTaggerPreferences.getString(TreeTaggerPreferences.OPTIONS, TreeTaggerPreferences.PREFERENCES_NODE).split("  ");
+		options = TreeTaggerPreferences.getInstance().getString(TreeTaggerPreferences.OPTIONS).split("  ");
 		
 		return ttBinaryDirectory != null && ttBinaryDirectory.exists() && ttModelsDirectory != null && ttModelsDirectory.exists();
 	}
Index: tmp/org.txm.treetagger.core/src/org/txm/treetagger/core/preferences/TreeTaggerPreferences.java
===================================================================
--- tmp/org.txm.treetagger.core/src/org/txm/treetagger/core/preferences/TreeTaggerPreferences.java	(revision 1025)
+++ tmp/org.txm.treetagger.core/src/org/txm/treetagger/core/preferences/TreeTaggerPreferences.java	(revision 1026)
@@ -7,8 +7,6 @@
 import java.net.URL;
 import java.util.Properties;
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.framework.Version;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TXMPreferences;
@@ -25,39 +23,47 @@
 public class TreeTaggerPreferences extends TXMPreferences {
 
 
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(TreeTaggerPreferences.class).getSymbolicName();
-	
-	public static final String PREFERENCES_PREFIX = "treetagger_"; //$NON-NLS-1$
-
 	/**
 	 * contains the last bundle version setting the TreeTagger binariesl directory
 	 */
-	public static final String INSTALLED_BINARIES_VERSION = PREFERENCES_PREFIX + "installed_binaries_version"; //$NON-NLS-1$
+	public static final String INSTALLED_BINARIES_VERSION = "installed_binaries_version"; //$NON-NLS-1$
 	/**
 	 * contains the last bundle version setting the TreeTagger models directory
 	 */
-	public static final String INSTALLED_MODELS_VERSION = PREFERENCES_PREFIX + "installed_models_version"; //$NON-NLS-1$
+	public static final String INSTALLED_MODELS_VERSION = "installed_models_version"; //$NON-NLS-1$
 	
 	/**
 	 * Installation path.
 	 */
-	public static final String INSTALL_PATH = PREFERENCES_PREFIX + "install_path"; //$NON-NLS-1$
+	public static final String INSTALL_PATH = "install_path"; //$NON-NLS-1$
 
 	/**
 	 * Models path.
 	 */
-	public static final String MODELS_PATH = PREFERENCES_PREFIX + "models_path"; //$NON-NLS-1$
+	public static final String MODELS_PATH = "models_path"; //$NON-NLS-1$
 	
-	public static final String OPTIONS = PREFERENCES_PREFIX + "options"; //$NON-NLS-1$
+	public static final String OPTIONS = "options"; //$NON-NLS-1$
 	
-	public static final String FIX_APOSTROPHES = PREFERENCES_PREFIX + "fix_apostrophes"; //$NON-NLS-1$
+	public static final String FIX_APOSTROPHES = "fix_apostrophes"; //$NON-NLS-1$
 
+	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(TreeTaggerPreferences.class)) {
+			new TreeTaggerPreferences();
+		}
+		return TXMPreferences.instances.get(TreeTaggerPreferences.class);
+	}
+
+	
 	@Override
 	public void initializeDefaultPreferences() {
 
 		// Default preferences if no org.txm.treetagger.core fragment is found
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		
 		String installPath = "/usr/lib/treetagger"; //"System.getProperty("osgi.user.area") + "/TXM/treetagger"; //$NON-NLS-1$ //$NON-NLS-2$
 		if (System.getProperty("os.name").contains("Windows")) {
@@ -71,8 +77,8 @@
 		preferences.putBoolean(FIX_APOSTROPHES, false);
 
 		// FIXME: need to validate this code + need to check if it's still useful
-		String bversion = TXMPreferences.getString(INSTALLED_BINARIES_VERSION, PREFERENCES_NODE);
-		String mversion = TXMPreferences.getString(INSTALLED_MODELS_VERSION, PREFERENCES_NODE);
+		String bversion = TreeTaggerPreferences.getInstance().getString(INSTALLED_BINARIES_VERSION);
+		String mversion = TreeTaggerPreferences.getInstance().getString(INSTALLED_MODELS_VERSION);
 		
 		// if TXM is launch for the first time bversion and mversion valus are empty
 		if (bversion == null || bversion.equals("") || mversion == null || mversion.equals("")) {
@@ -95,7 +101,7 @@
 					for (String k : keys) {
 						if (previousProperties.getProperty(previousProperties.getProperty(k)) != null) {
 							preferences.put(k, installPath);
-							TreeTaggerPreferences.put(PREFERENCES_NODE, k, previousProperties.getProperty(k));
+							TreeTaggerPreferences.getInstance().put(k, previousProperties.getProperty(k));
 						}
 					}
 				}
@@ -104,11 +110,11 @@
 				}
 			}
 			
-			TreeTaggerPreferences.put(PREFERENCES_NODE, INSTALLED_BINARIES_VERSION, "0.0.0");
-			TreeTaggerPreferences.put(PREFERENCES_NODE, INSTALLED_MODELS_VERSION, "0.0.0");
+			TreeTaggerPreferences.getInstance().put(INSTALLED_BINARIES_VERSION, "0.0.0");
+			TreeTaggerPreferences.getInstance().put(INSTALLED_MODELS_VERSION, "0.0.0");
 			
-			bversion = TXMPreferences.getString(INSTALLED_BINARIES_VERSION, PREFERENCES_NODE);
-			mversion = TXMPreferences.getString(INSTALLED_MODELS_VERSION, PREFERENCES_NODE);
+			bversion = TreeTaggerPreferences.getInstance().getString(INSTALLED_BINARIES_VERSION);
+			mversion = TreeTaggerPreferences.getInstance().getString(INSTALLED_MODELS_VERSION);
 		}
 		
 		// look for org.txm.treetagger.core.<osname> fragment
@@ -138,7 +144,7 @@
 				new File(binariesDir, "bin/tree-tagger").setExecutable(true); // linux&mac
 				new File(binariesDir, "bin/train-tree-tagger").setExecutable(true); // linux&mac
 				preferences.put(INSTALL_PATH, binariesDir.getAbsolutePath());
-				TreeTaggerPreferences.put(PREFERENCES_NODE, INSTALLED_BINARIES_VERSION, binariesFragmentVersion.toString());
+				TreeTaggerPreferences.getInstance().put(INSTALLED_BINARIES_VERSION, binariesFragmentVersion.toString());
 				System.out.println("Done.");
 			} catch (MalformedURLException e) {
 				// TODO Auto-generated catch block
@@ -155,7 +161,7 @@
 				if (path.startsWith("file:")) path = path.substring(5);
 				File modelsDir = new File(path, "res/models");
 				preferences.put(MODELS_PATH, modelsDir.getAbsolutePath()); //$NON-NLS-1$
-				TreeTaggerPreferences.put(PREFERENCES_NODE, INSTALLED_MODELS_VERSION, modelsFragmentVersion.toString());
+				TreeTaggerPreferences.getInstance().put(INSTALLED_MODELS_VERSION, modelsFragmentVersion.toString());
 				System.out.println("Done.");
 			} catch (MalformedURLException e) {
 				// TODO Auto-generated catch block
Index: tmp/org.txm.properties.core/src/org/txm/properties/core/functions/Properties.java
===================================================================
--- tmp/org.txm.properties.core/src/org/txm/properties/core/functions/Properties.java	(revision 1025)
+++ tmp/org.txm.properties.core/src/org/txm/properties/core/functions/Properties.java	(revision 1026)
@@ -38,6 +38,7 @@
 import java.util.Locale;
 
 import org.eclipse.osgi.util.NLS;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.core.results.Parameter;
@@ -612,7 +613,7 @@
 		this.stepStructuralUnits();
 		this.worked(1);
 		
-		String txmhome = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE);
+		String txmhome = Toolbox.getTxmHomePath();
 		String filename = corpus.getMainCorpus() + "-" + corpus.getName(); //$NON-NLS-1$
 		if (corpus instanceof MainCorpus) {
 			filename = corpus.getName(); //$NON-NLS-1$
Index: tmp/org.txm.treetaggerinstaller.rcp/src/org/txm/treetagger/DoInstallStep.java
===================================================================
--- tmp/org.txm.treetaggerinstaller.rcp/src/org/txm/treetagger/DoInstallStep.java	(revision 1025)
+++ tmp/org.txm.treetaggerinstaller.rcp/src/org/txm/treetagger/DoInstallStep.java	(revision 1026)
@@ -63,12 +63,12 @@
 		File OSDir = new File(treetaggerDir, os);
 		final File treetaggerModelsDir = new File(treetaggerDir, "models");
 
-		TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, TreeTaggerPreferences.INSTALL_PATH, OSDir.getAbsolutePath());
+		TreeTaggerPreferences.getInstance().put(TreeTaggerPreferences.INSTALL_PATH, OSDir.getAbsolutePath());
 		
-		final String previousModelDirectoryPath = TXMPreferences.getString(TreeTaggerPreferences.MODELS_PATH, TBXPreferences.PREFERENCES_NODE);
+		final String previousModelDirectoryPath = TreeTaggerPreferences.getInstance().getString(TreeTaggerPreferences.MODELS_PATH);
 		if (previousModelDirectoryPath == null) {
 			Log.info("Set TreeTagger model directory to: "+treetaggerModelsDir);
-			TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, TreeTaggerPreferences.MODELS_PATH, treetaggerModelsDir.getAbsolutePath());
+			TreeTaggerPreferences.getInstance().put(TreeTaggerPreferences.MODELS_PATH, treetaggerModelsDir.getAbsolutePath());
 		} else if (previousModelDirectoryPath.equals(treetaggerModelsDir.getAbsolutePath())) {
 			// nothing to do	
 			Log.info("No change to TreeTagger model directory.");
@@ -94,24 +94,24 @@
 						boolean b = MessageDialog.openConfirm(shell, "TreeTagger model directory", "The TreeTagger model directory is already set in TXM preferences and is not empty: \n  - "+StringUtils.join(filenames, "\n  - ")+"\n\nKeep using this one ?\n("+previousModelDirectoryPath+")");
 						if (!b) {
 							Log.info("Set TreeTagger model directory to: "+treetaggerModelsDir);
-							TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, TreeTaggerPreferences.MODELS_PATH, treetaggerModelsDir.getAbsolutePath());
+							TreeTaggerPreferences.getInstance().put(TreeTaggerPreferences.MODELS_PATH, treetaggerModelsDir.getAbsolutePath());
 						} else {
 							Log.info("Keep TreeTagger model directory to: "+previousModelDirectoryDirectory);
 						}
 					}
 				});
 			} else {
-				TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, TreeTaggerPreferences.MODELS_PATH, treetaggerModelsDir.getAbsolutePath());
+				TreeTaggerPreferences.getInstance().put(TreeTaggerPreferences.MODELS_PATH, treetaggerModelsDir.getAbsolutePath());
 			}
 		}
 		
-		String ttdir = TXMPreferences.getString(TreeTaggerPreferences.INSTALL_PATH, TBXPreferences.PREFERENCES_NODE);
-		String ttmodeldir = TXMPreferences.getString(TreeTaggerPreferences.MODELS_PATH, TBXPreferences.PREFERENCES_NODE);
+		String ttdir = TreeTaggerPreferences.getInstance().getString(TreeTaggerPreferences.INSTALL_PATH);
+		String ttmodeldir = TreeTaggerPreferences.getInstance().getString(TreeTaggerPreferences.MODELS_PATH);
 		Log.warning("TreeTagger preferences set to: "+ttdir+ " and "+ttmodeldir);
 		TXMPreferences.put(TreeTaggerInstallerPreferences.PREFERENCES_NODE, TreeTaggerInstallerPreferences.VERSION, currentVersion.toString());
 		
 		//FIXME: to beremoved when 0.8.0 preferences are ready 
-		TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, TreeTaggerPreferences.INSTALL_PATH, ttdir);
-		TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, TreeTaggerPreferences.MODELS_PATH, ttmodeldir);
+		TreeTaggerPreferences.getInstance().put(TreeTaggerPreferences.INSTALL_PATH, ttdir);
+		TreeTaggerPreferences.getInstance().put(TreeTaggerPreferences.MODELS_PATH, ttmodeldir);
 	}
 }
Index: tmp/org.txm.index.rcp/src/org/txm/index/rcp/preferences/IndexPreferencesPage.java
===================================================================
--- tmp/org.txm.index.rcp/src/org/txm/index/rcp/preferences/IndexPreferencesPage.java	(revision 1025)
+++ tmp/org.txm.index.rcp/src/org/txm/index/rcp/preferences/IndexPreferencesPage.java	(revision 1026)
@@ -8,12 +8,18 @@
 import org.txm.rcp.preferences.TXMPreferencePage;
 import org.txm.rcp.preferences.TXMPreferenceStore;
 
+/**
+ * Index preferences page.
+ * 
+ * @author sjacquot
+ *
+ */
 public class IndexPreferencesPage extends TXMPreferencePage {
 
 	@Override
 	public void init(IWorkbench workbench) {
 		
-		this.setPreferenceStore(new TXMPreferenceStore(IndexPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(IndexPreferences.getInstance().getPreferencesNodeQualifier()));
 		this.setTitle("Index");
 		this.setImageDescriptor(IndexAdapterFactory.ICON);
 	}
Index: tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/preferences/AnnotationPreferencePage.java
===================================================================
--- tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/preferences/AnnotationPreferencePage.java	(revision 1025)
+++ tmp/org.txm.annotation.rcp/src/org/txm/annotation/rcp/preferences/AnnotationPreferencePage.java	(revision 1026)
@@ -74,7 +74,7 @@
 	 */
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(AnnotationPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(AnnotationPreferences.getInstance().getPreferencesNodeQualifier()));
 		//this.setTitle("WordCloud");
 		this.setImageDescriptor(IImageKeys.getImageDescriptor(IImageKeys.PENCIL));
 	}
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Part.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Part.java	(revision 1025)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Part.java	(revision 1026)
@@ -34,7 +34,6 @@
 import org.txm.searchengine.cqp.corpus.query.Query;
 import org.w3c.dom.Element;
 
-// TODO: Auto-generated Javadoc
 /**
  * A Part is related to the {@link Partition} and is a CQP subcorpus.
  *
@@ -71,6 +70,17 @@
 
 		this.partition.addChild(this);
 		this.setVisible(false);
+		this.persistable = true;
+		this.userPersistable = false;
+		
+//		try {
+//			this.compute();
+//		}
+//		catch (Exception e) {
+//			// TODO Auto-generated catch block
+//			e.printStackTrace();
+//		}
+
 	}
 
 	/**
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Partition.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Partition.java	(revision 1025)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Partition.java	(revision 1026)
@@ -76,21 +76,10 @@
 	/** The Constant serialVersionUID. */
 	private static final long serialVersionUID = 4420732757687971253L;
 
-	/**
-	 * Get the safe values (spacial char regexp safe).
-	 *
-	 * @param property the property
-	 * @param corpus the corpus
-	 * @return the safe values
-	 * @throws CqiClientException the cqi client exception
-	 */
-	private static List<String> getSafeValues(StructuralUnitProperty property, Corpus corpus) throws CqiClientException	{
-		List<String> values = property.getValues(corpus);
-		for(int i = 0 ; i < values.size() ; i++)
-			values.set(i, Query.addBackSlash(values.get(i)));
-		return values;
-	}
+	/** sum of parts size, stored for efficiency reasons**/
+	int totalsize = -1;
 
+	
 	/** The property, if not null the partition will forge its own queries */
 	@Parameter(key=TXMPreferences.STRUCTURAL_UNIT_PROPERTY)
 	protected StructuralUnitProperty pProperty;
@@ -107,15 +96,13 @@
 	/**
 	 * the parts names -> do the parts order
 	 */
-	@Parameter(key=CQPPreferences.PARTNAMES)
+	@Parameter(key=CQPPreferences.PART_NAMES)
 	protected List<String> pPartNames;
 	/**
 	 * the partition name to set
 	 */
 	@Parameter(key=TXMPreferences.LAZY_NAME)
 	protected String pName;
-	/** sum of parts size, stored for efficiency reasons**/
-	int totalsize = -1;
 
 
 	//	/**
@@ -458,6 +445,7 @@
 	 * @return the the number of parts.
 	 */
 	public int getNPart() {
+		// FIXME: later should just return the direct children count
 		try {
 			if (!hasBeenComputedOnce()) {
 				compute();
@@ -713,7 +701,7 @@
 	@Override
 	public boolean setParameters(TXMParameters parameters) {
 		this.pName = parameters.getString(TXMPreferences.LAZY_NAME);
-		String tmp = parameters.getString(CQPPreferences.PARTNAMES);
+		String tmp = parameters.getString(CQPPreferences.PART_NAMES);
 		if (tmp != null) {
 			this.pPartNames = Arrays.asList(tmp.split("\t"));
 		} else {
@@ -758,7 +746,7 @@
 			e.printStackTrace();
 		}
 		
-		tmp = this.getStringParameterValue(CQPPreferences.PARTNAMES);
+		tmp = this.getStringParameterValue(CQPPreferences.PART_NAMES);
 		if (tmp != null) {
 			this.pPartNames = Arrays.asList(tmp.split("\t"));
 		} else {
@@ -789,7 +777,7 @@
 		}
 		
 		if (this.pPartNames != null)	{
-			this.saveParameter(CQPPreferences.PARTNAMES, StringUtils.join(pPartNames, "\t"));
+			this.saveParameter(CQPPreferences.PART_NAMES, StringUtils.join(pPartNames, "\t"));
 		}
 		
 		if (this.pQueries != null)	{
@@ -802,5 +790,22 @@
 
 		return true;
 	}
+	
+	/**
+	 * Get the safe values (spacial char regexp safe).
+	 *
+	 * @param property the property
+	 * @param corpus the corpus
+	 * @return the safe values
+	 * @throws CqiClientException the cqi client exception
+	 */
+	private static List<String> getSafeValues(StructuralUnitProperty property, Corpus corpus) throws CqiClientException	{
+		List<String> values = property.getValues(corpus);
+		for(int i = 0 ; i < values.size() ; i++)
+			values.set(i, Query.addBackSlash(values.get(i)));
+		return values;
+	}
 
+
+
 }
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Corpus.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Corpus.java	(revision 1025)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/Corpus.java	(revision 1026)
@@ -154,14 +154,13 @@
 	 * @return the partition
 	 * @throws CqiClientException the cqi client exception
 	 */
-	public Partition createPartition(String name, List<String> queries,
-			List<String> partnames, boolean registered)
-					throws Exception {
+	public Partition createPartition(String name, List<String> queries, List<String> partnames, boolean registered) throws Exception {
 		Partition partition = new Partition(this);
 		partition.setParameters(name, queries, partnames);
 		partition.compute();
-		if (!registered)
+		if (!registered) {
 			partition.registerToParent();
+		}
 		return partition;
 	}
 
@@ -175,14 +174,13 @@
 	 * @return the partition
 	 * @throws CqiClientException the cqi client exception
 	 */
-	public Partition createPartition(String name, StructuralUnit structure,
-			StructuralUnitProperty property, List<String> values,
-			boolean registered) throws Exception {
+	public Partition createPartition(String name, StructuralUnit structure, StructuralUnitProperty property, List<String> values, boolean registered) throws Exception {
 		Partition partition = new Partition(this);
 		partition.setParameters(name, property, values);
 		partition.compute();
-		if (!registered)
+		if (!registered) {
 			partition.registerToParent();
+		}
 		return partition;
 	}
 
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/MainCorpus.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/MainCorpus.java	(revision 1025)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/corpus/MainCorpus.java	(revision 1026)
@@ -268,8 +268,7 @@
 	 */
 	public String getFullName() throws CqiClientException {
 		try {
-			return CorpusManager.getCorpusManager().getCqiClient()
-					.corpusFullName(this.cqpId);
+			return CorpusManager.getCorpusManager().getCqiClient().corpusFullName(this.cqpId);
 		} catch (Exception e) {
 			throw new CqiClientException(e);
 		}
@@ -285,8 +284,9 @@
 	 */
 	@Override
 	public WordProperty getProperty(String name) throws CqiClientException {
-		if (this.lexicalUnitsProperties == null)
+		if (this.lexicalUnitsProperties == null) {
 			getProperties();
+		}
 		
 		int idx = name.indexOf(".");
 		if (idx > 0) { // the name if a qualified name
@@ -294,8 +294,9 @@
 		}
 		
 		for (WordProperty property : this.lexicalUnitsProperties) {
-			if (property.getName().equals(name))
+			if (property.getName().equals(name)) {
 				return property;
+			}
 		}
 		return null;
 	}
@@ -308,13 +309,15 @@
 	 * .lang.String)
 	 */
 	@Override
-	public StructuralUnit getStructuralUnit(String name)
-			throws CqiClientException {
-		if (this.structuralUnits == null)
+	public StructuralUnit getStructuralUnit(String name) throws CqiClientException {
+		if (this.structuralUnits == null) {
 			getStructuralUnits();
-		for (StructuralUnit unit : this.structuralUnits)
-			if (unit.getName().equals(name))
+		}
+		for (StructuralUnit unit : this.structuralUnits) {
+			if (unit.getName().equals(name)) {
 				return unit;
+			}
+		}
 		return null;
 	}
 
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java	(revision 1025)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPSearchEngine.java	(revision 1026)
@@ -46,7 +46,9 @@
 	@Override
 	public boolean start(IProgressMonitor monitor) throws Exception {
 
-		if (monitor != null) monitor.subTask("Starting Corpus Engine...");
+		if (monitor != null) {
+			monitor.subTask("Starting Corpus Engine...");
+		}
 
 		boolean cqiserverok = false;
 
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPPreferences.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPPreferences.java	(revision 1025)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/searchengine/cqp/CQPPreferences.java	(revision 1026)
@@ -1,7 +1,5 @@
 package org.txm.searchengine.cqp;
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TXMPreferences;
 
@@ -14,19 +12,27 @@
  */
 public class CQPPreferences extends TXMPreferences {
 	
-	// auto populate the preference node qualifier from the current bundle id
-	public static String PREFERENCES_NODE = FrameworkUtil.getBundle(CQPPreferences.class).getSymbolicName();
 
-	public static final String PREFERENCES_PREFIX = "cqp_"; //$NON-NLS-1$
-
 	/**
 	 * List of part names
 	 */
-	public static final String PARTNAMES = "part_names"; //$NON-NLS-1$
+	public static final String PART_NAMES = "part_names"; //$NON-NLS-1$
 	
+	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(CQPPreferences.class)) {
+			new CQPPreferences();
+		}
+		return TXMPreferences.instances.get(CQPPreferences.class);
+	}
 
+
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 	}
 }
Index: tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/CwbEncode.java
===================================================================
--- tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/CwbEncode.java	(revision 1025)
+++ tmp/org.txm.searchengine.cqp.core/src/org/txm/importer/cwb/CwbEncode.java	(revision 1026)
@@ -235,7 +235,7 @@
 		 */
 
 		// Warning !! for WINDOWS ONLY the "" value does not work with the ProcessBuilder we must set the value to "\"\""
-		String empty_value_code = TXMPreferences.getString(TBXPreferences.EMPTY_PROPERTY_VALUE_CODE, TBXPreferences.PREFERENCES_NODE);
+		String empty_value_code = Toolbox.getPreference(TBXPreferences.EMPTY_PROPERTY_VALUE_CODE);
 		if (OSDetector.isFamilyWindows()) {
 			if (empty_value_code == null) empty_value_code = "\"\"";
 			empty_value_code = empty_value_code.trim();
Index: tmp/org.txm.statsengine.r.rcp/src/org/txm/rcp/commands/R/OpenEmptyEditor.java
===================================================================
--- tmp/org.txm.statsengine.r.rcp/src/org/txm/rcp/commands/R/OpenEmptyEditor.java	(revision 1025)
+++ tmp/org.txm.statsengine.r.rcp/src/org/txm/rcp/commands/R/OpenEmptyEditor.java	(revision 1026)
@@ -34,6 +34,7 @@
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.osgi.util.NLS;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.rcp.handlers.files.EditFile;
@@ -51,7 +52,7 @@
 	 */
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
-		File txmhome = new File(TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.USER_TXM_HOME));
+		File txmhome = new File(Toolbox.getTxmHomePath());
 		File scripts = new File(txmhome, "scripts"); //$NON-NLS-1$
 		scripts.mkdir();
 		if (!scripts.exists())
Index: tmp/org.txm.statsengine.r.rcp/src/org/txm/statsengine/r/rcp/handlers/ExecuteRScript.java
===================================================================
--- tmp/org.txm.statsengine.r.rcp/src/org/txm/statsengine/r/rcp/handlers/ExecuteRScript.java	(revision 1025)
+++ tmp/org.txm.statsengine.r.rcp/src/org/txm/statsengine/r/rcp/handlers/ExecuteRScript.java	(revision 1026)
@@ -47,6 +47,7 @@
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.rcp.StatusLine;
@@ -110,7 +111,7 @@
 			}
 			dialog.setFilterExtensions(new String[] { "*.R" }); //$NON-NLS-1$
 
-			String scriptCurrentDir = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE)+ "/scripts";
+			String scriptCurrentDir = Toolbox.getTxmHomePath() + "/scripts";
 			
 			dialog.setFilterPath(scriptCurrentDir);
 			result = dialog.open();
Index: tmp/org.txm.statsengine.r.rcp/src/org/txm/statsengine/r/rcp/handlers/CheckRPackages.java
===================================================================
--- tmp/org.txm.statsengine.r.rcp/src/org/txm/statsengine/r/rcp/handlers/CheckRPackages.java	(revision 1025)
+++ tmp/org.txm.statsengine.r.rcp/src/org/txm/statsengine/r/rcp/handlers/CheckRPackages.java	(revision 1026)
@@ -156,7 +156,7 @@
 	
 	public static boolean installRPAckagesViaRscript() throws IOException {
 		String cmd = ""; //$NON-NLS-1$
-		String installPath = TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE);
+		String installPath = Toolbox.getInstallDirectory();
 		if (Util.isMac() || Util.isLinux()) {
 			cmd = "R --no-save < \""+installPath+"/R/rlibs.R\""; //$NON-NLS-1$ //$NON-NLS-2$
 		} else if (Util.isWindows()) {
Index: tmp/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/preferences/KRAnnotationPreferencePage.java
===================================================================
--- tmp/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/preferences/KRAnnotationPreferencePage.java	(revision 1025)
+++ tmp/org.txm.annotation.kr.rcp/src/org/txm/annotation/kr/rcp/preferences/KRAnnotationPreferencePage.java	(revision 1026)
@@ -71,7 +71,7 @@
 	 */
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(AnnotationPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(AnnotationPreferences.getInstance().getPreferencesNodeQualifier()));
 		this.setImageDescriptor(IImageKeys.getImageDescriptor(IImageKeys.PENCIL));
 	}
 }
Index: tmp/org.txm.imports.metopes/src/org/txm/imports/metopes/DoInstallStep.java
===================================================================
--- tmp/org.txm.imports.metopes/src/org/txm/imports/metopes/DoInstallStep.java	(revision 1025)
+++ tmp/org.txm.imports.metopes/src/org/txm/imports/metopes/DoInstallStep.java	(revision 1026)
@@ -4,6 +4,7 @@
 
 import org.osgi.framework.Version;
 import org.txm.PostInstallationStep;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.importer.metopes.preferences.MetopesPreferences;
@@ -40,21 +41,21 @@
 		}
 		System.out.println("Post-installing Metopes version="+currentVersion);
 		
-		File macroDirectory = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "scripts/macro/org/txm/macro");
+		File macroDirectory = new File(Toolbox.getTxmHomePath(), "scripts/macro/org/txm/macro");
 		macroDirectory.mkdirs();
 		if (!BundleUtils.copyFiles("org.txm.imports.metopes", "src", "org/txm/macro/", "metopes", macroDirectory)) {
 			System.out.println("Error while coping Metopes org/txm/macro/metopes in "+macroDirectory.getAbsolutePath());
 			return;
 		}
 		
-		File importDirectory = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "scripts/import");
+		File importDirectory = new File(Toolbox.getTxmHomePath(), "scripts/import");
 		importDirectory.mkdirs();
 		if (!BundleUtils.copyFiles("org.txm.imports.metopes", "src", "org/txm/importer/metopes", "metopesLoader.groovy", importDirectory)) {
 			System.out.println("Error while coping Metopes org/txm/importer/metopes in "+importDirectory.getAbsolutePath());
 			return;
 		}
 		
-		File xslDirectory = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "xsl");
+		File xslDirectory = new File(Toolbox.getTxmHomePath(), "xsl");
 		xslDirectory.mkdirs();
 		if (!BundleUtils.copyFiles("org.txm.imports.metopes", "res", "org/txm/xml/xsl", "metopes", xslDirectory)) {
 			System.out.println("Error while coping Metopes org/txm/xml/xsl/metopes in "+xslDirectory.getAbsolutePath());
Index: tmp/org.txm.lexicaltable.core/src/org/txm/lexicaltable/core/preferences/LexicalTablePreferences.java
===================================================================
--- tmp/org.txm.lexicaltable.core/src/org/txm/lexicaltable/core/preferences/LexicalTablePreferences.java	(revision 1025)
+++ tmp/org.txm.lexicaltable.core/src/org/txm/lexicaltable/core/preferences/LexicalTablePreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.lexicaltable.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TXMPreferences;
 
@@ -16,17 +14,27 @@
 public class LexicalTablePreferences extends TXMPreferences {
 
 
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(LexicalTablePreferences.class).getSymbolicName();
-
 	/**
 	 * If true, the table computed from an Index will use all the occurrences from the corpus to add the #RESTE# line composed of the others words
 	 */
 	public static final String USE_ALL_OCCURRENCES = "use_all_occurrences"; //$NON-NLS-1$
 	
+	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(LexicalTablePreferences.class)) {
+			new LexicalTablePreferences();
+		}
+		return TXMPreferences.instances.get(LexicalTablePreferences.class);
+	}
+
+	
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		preferences.putInt(F_MIN, 2);
 		preferences.putInt(V_MAX, 200);
 		preferences.putBoolean(USE_ALL_OCCURRENCES, true);
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/actions/RunGroovyScript.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/actions/RunGroovyScript.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/actions/RunGroovyScript.java	(revision 1026)
@@ -44,6 +44,7 @@
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.importer.scripting.GroovyImportScriptRunner;
@@ -102,8 +103,8 @@
 
 		FileDialog dialog = new FileDialog(window.getShell(), SWT.OPEN);
 		dialog.setFilterExtensions(new String[] { TXMUIMessages.RunGroovyScript_3 });
-		String scriptRootDir = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE)+ "/scripts";
-		String scriptCurrentDir = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE)+ "/scripts";
+		String scriptRootDir = Toolbox.getTxmHomePath() + "/scripts";
+		String scriptCurrentDir = Toolbox.getTxmHomePath() + "/scripts";
 		
 
 		if (LastOpened.getFolder(ID) != null) {
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/actions/ImportDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/actions/ImportDialog.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/actions/ImportDialog.java	(revision 1026)
@@ -195,7 +195,7 @@
 					if (lastopenedbase != null) {
 						dialog.setFilterPath(dirValue.getText());
 					} else
-						dialog.setFilterPath(new File(TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE), "corpora").getAbsolutePath()); //$NON-NLS-1$
+						dialog.setFilterPath(new File(Toolbox.getInstallDirectory(), "corpora").getAbsolutePath()); //$NON-NLS-1$
 					if (dialog.open() != null) {
 						String path = dialog.getFilterPath();
 						
@@ -370,7 +370,7 @@
 					if (lastopenedbase != null) {
 						dialog.setFilterPath(dirValue.getText());
 					} else
-						dialog.setFilterPath(new File(TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE), "corpora").getAbsolutePath()); //$NON-NLS-1$
+						dialog.setFilterPath(new File(Toolbox.getInstallDirectory(), "corpora").getAbsolutePath()); //$NON-NLS-1$
 					if (dialog.open() != null) {
 						paramtokenizer = new File(dialog.getFilterPath(),
 								dialog.getFileName());
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/actions/CreatePartitionDialog.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/actions/CreatePartitionDialog.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/actions/CreatePartitionDialog.java	(revision 1026)
@@ -616,12 +616,12 @@
 		}
 
 		if (p == null) {
-			System.out.println(TXMUIMessages.CreatePartitionDialog_8);
+			Log.severe(TXMUIMessages.CreatePartitionDialog_8);
 			return null;
 		}
 		
 		if (p.getParts().size() == 0) {
-			System.out.println(TXMUIMessages.CreatePartitionDialog_10);
+			Log.severe(TXMUIMessages.CreatePartitionDialog_10);
 			return null;
 		}
 		
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/TXMMainPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/TXMMainPreferencePage.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/TXMMainPreferencePage.java	(revision 1026)
@@ -185,7 +185,7 @@
 //		addField(buttonImport);
 
 		// disable if expert user
-		if (!TXMPreferences.getBoolean(TBXPreferences.EXPERT_USER, TBXPreferences.PREFERENCES_NODE)) {
+		if (!TBXPreferences.getInstance().getBoolean(TBXPreferences.EXPERT_USER)) {
 			Group updateGroup = new Group(getFieldEditorParent(), SWT.NONE);
 			updateGroup.setText(TXMUIMessages.TextometriePreferencePage_2);
 			GridData gridData2 = new GridData(SWT.FILL, SWT.FILL, true, false);
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/DebugPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/DebugPreferencePage.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/DebugPreferencePage.java	(revision 1026)
@@ -23,6 +23,6 @@
 	
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(TBXPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(TBXPreferences.getInstance().getPreferencesNodeQualifier()));
 	}
 }
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/AdvancedPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/AdvancedPreferencePage.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/AdvancedPreferencePage.java	(revision 1026)
@@ -136,6 +136,6 @@
 
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(TBXPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(TBXPreferences.getInstance().getPreferencesNodeQualifier()));
 	}
 }
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/ImportPreferencePage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/ImportPreferencePage.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/preferences/ImportPreferencePage.java	(revision 1026)
@@ -146,6 +146,6 @@
 
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(TBXPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(TBXPreferences.getInstance().getPreferencesNodeQualifier()));
 	}
 }
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/ImportSelectedText.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/ImportSelectedText.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/ImportSelectedText.java	(revision 1026)
@@ -160,10 +160,8 @@
 //			System.out.println(Messages.ImportSelectedText_10+corpusElem.getAttribute("lang"));  //$NON-NLS-1$
 //		} else { System.out.println(Messages.ImportSelectedText_12+corpusElem.getAttribute("lang"));}  //$NON-NLS-1$
 		
-		String locale = Locale.getDefault().getLanguage();
-		//FIXME: the default value should be computed in the preferences initializer
-		String lang = TXMPreferences.getString(TBXPreferences.IMPORT_DEFAULT_LANG, null, TBXPreferences.PREFERENCES_NODE, locale);
-		if (lang.length() == 0) lang = locale;
+		String lang = TBXPreferences.getInstance().getString(TBXPreferences.IMPORT_DEFAULT_LANG);
+		if (lang.length() == 0) lang = Locale.getDefault().getLanguage();
 		if ("??".equals(lang)) { //$NON-NLS-1$
 			LangDetector detector = new LangDetector(quicksrc);
 			lang = detector.getLang();
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenManual.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenManual.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/commands/OpenManual.java	(revision 1026)
@@ -36,6 +36,7 @@
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.utils.logger.Log;
@@ -67,7 +68,7 @@
 	public static void open() {
 		try {
 			String locale = Locale.getDefault().getLanguage();
-			String installdir = TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE);
+			String installdir = Toolbox.getInstallDirectory();
 
 			String file = files.get(locale);
 			if (file == null) file = files.get(default_locale);
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/CorpusPage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/CorpusPage.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/CorpusPage.java	(revision 1026)
@@ -1012,7 +1012,7 @@
 		} else if (lastOpenedSrcDir != null) {
 			dialog.setFilterPath(Toolbox.getTxmHomePath());
 		} else
-			dialog.setFilterPath(new File(TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE), "corpora").getAbsolutePath()); //$NON-NLS-1$
+			dialog.setFilterPath(new File(Toolbox.getInstallDirectory(), "corpora").getAbsolutePath()); //$NON-NLS-1$
 
 		if (dialog.open() != null) {
 			String path = dialog.getFilterPath();
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/MetadataPage.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/MetadataPage.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/imports/MetadataPage.java	(revision 1026)
@@ -483,9 +483,9 @@
 		Metadatas temp = null;
 		if (metadataFile.exists()) {//if their is a metadata file OK
 			if (metadataFile.getName().endsWith(".csv")) { //$NON-NLS-1$
-				String encoding = TXMPreferences.getString(TBXPreferences.METADATA_ENCODING, TBXPreferences.PREFERENCES_NODE);
-				String colsep = TXMPreferences.getString(TBXPreferences.METADATA_COLSEPARATOR, TBXPreferences.PREFERENCES_NODE);
-				String txtsep = TXMPreferences.getString(TBXPreferences.METADATA_TXTSEPARATOR, TBXPreferences.PREFERENCES_NODE);
+				String encoding = TBXPreferences.getInstance().getString(TBXPreferences.METADATA_ENCODING);
+				String colsep = TBXPreferences.getInstance().getString(TBXPreferences.METADATA_COLSEPARATOR);
+				String txtsep = TBXPreferences.getInstance().getString(TBXPreferences.METADATA_TXTSEPARATOR);
 				temp = new Metadatas(metadataFile, encoding, colsep, txtsep, 1);
 			} else {
 				temp = new Metadatas(metadataFile);
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/input/AbstractSVGGraphicable.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/input/AbstractSVGGraphicable.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/editors/input/AbstractSVGGraphicable.java	(revision 1026)
@@ -67,7 +67,7 @@
 		if (this.path == null) {
 			File tmp = null;
 			try {
-				String txmhome = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE);
+				String txmhome = Toolbox.getTxmHomePath();
 				File resultDir = new File(txmhome, "results"); //$NON-NLS-1$
 				resultDir.mkdirs();
 				tmp = File.createTempFile("txm", ".svg", resultDir); //$NON-NLS-1$ //$NON-NLS-2$
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/JobsTimer.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/JobsTimer.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/JobsTimer.java	(revision 1026)
@@ -55,7 +55,7 @@
 	}
 	
 	public static void stopAndPrint() {
-		if (TXMPreferences.getBoolean(TBXPreferences.SHOW_TIMINGS, TBXPreferences.PREFERENCES_NODE)) {
+		if (TBXPreferences.getInstance().getBoolean(TBXPreferences.SHOW_TIMINGS)) {
 			if (time <= 1000) System.out.println(NLS.bind(TXMUIMessages.JobsTimer_15, stop(),(int)time));
 			else System.out.println(NLS.bind(TXMUIMessages.JobsTimer_19, stop()));
 		}
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/ApplicationWorkbenchAdvisor.java	(revision 1026)
@@ -340,7 +340,7 @@
 
 		// Remove RCP Update preference page
 		Log.warning(TXMUIMessages.ApplicationWorkbenchAdvisor_21);
-		if (!TXMPreferences.getBoolean(TBXPreferences.EXPERT_USER, TBXPreferences.PREFERENCES_NODE)) {
+		if (!TBXPreferences.getInstance().getBoolean(TBXPreferences.EXPERT_USER)) {
 			pm.remove("org.eclipse.equinox.internal.p2.ui.sdk.ProvisioningPreferencePage"); //$NON-NLS-1$
 
 			// Remove the Team menu
@@ -373,7 +373,7 @@
 		if (needToRestoreTXMHOME) return; // don't call for update for the first run of TXM
 
 		try {
-			boolean doUpdate = TXMPreferences.getBoolean(TBXPreferences.FETCH_UPDATES_AT_STARTUP, TBXPreferences.PREFERENCES_NODE);
+			boolean doUpdate = TBXPreferences.getInstance().getBoolean(TBXPreferences.FETCH_UPDATES_AT_STARTUP);
 			if (!doUpdate) return;
 			//
 			//				this.syncExec(new Runnable() {
@@ -418,13 +418,13 @@
 	}
 
 	public static boolean testTXMHOMEPreferenceAndDirectory() {
-		String path = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE);
+		String path = Toolbox.getTxmHomePath();
 
 		if (path == null || path.trim().equals("")) {
-			Log.warning("TXM user directory is not set ('"+TBXPreferences.USER_TXM_HOME+"' preference is not set).");
+			Log.warning("TXM user directory is not set ('" + TBXPreferences.USER_TXM_HOME + "' preference is not set).");
 			return true;
 		}
-		File dir = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE).trim());
+		File dir = new File(Toolbox.getTxmHomePath().trim());
 		if (!dir.exists()) {
 			Log.warning("TXM user directory is set to '"+dir+"' but does not exist.");
 			return true;
@@ -441,13 +441,13 @@
 
 	public static boolean testTXMINSTALLPreferenceAndDirectory() {
 		//		TxmPreferences.dump();
-		if (TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE) == null) {
+		if (Toolbox.getInstallDirectory() == null) {
 			Log.warning("TXM install directory is not set ('"+TBXPreferences.INSTALL_DIR+"' preference is not set).");
 			return true;
 		}
 
-		File installdir = new File(TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE).trim());
-		if (TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE).equals("")) {
+		File installdir = new File(Toolbox.getInstallDirectory().trim());
+		if (Toolbox.getInstallDirectory().equals("")) {
 			Log.warning("TXM install directory is set to ''.");
 			return true;
 		} else if (!installdir.exists()) {
@@ -540,8 +540,6 @@
 					public void run() { OpenWelcomePage.openWelcomePage(); }
 				});
 
-				TXMPreferences.remove(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE);
-
 				// set the install directory preference
 				String installpath = Platform.getInstallLocation().getURL().getFile(); // the TXM.exe file path
 				File installDirectory = new File(installpath);
@@ -590,7 +588,7 @@
 					return false;
 				}
 
-				TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, TBXPreferences.INSTALL_DIR, installDirectory.getAbsolutePath());
+				TBXPreferences.getInstance().put(TBXPreferences.INSTALL_DIR, installDirectory.getAbsolutePath());
 				TXMPreferences.saveAll();
 				return true;
 			}
@@ -688,10 +686,10 @@
 			System.out.println(TXMUIMessages.ApplicationWorkbenchAdvisor_7);
 
 			try {
-				Log.info(NLS.bind(TXMUIMessages.ApplicationWorkbenchAdvisor_8, TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE)));
+				Log.info(NLS.bind(TXMUIMessages.ApplicationWorkbenchAdvisor_8, Toolbox.getInstallDirectory()));
 
 				Log.info("Checking TXM user directory.");
-				if (TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE).trim().isEmpty()) {
+				if (Toolbox.getTxmHomePath().trim().isEmpty()) {
 					Version v = BundleUtils.getBundleVersion("org.txm.rcp");
 
 					String version = v.getMajor()+"."+v.getMinor()+"."+v.getMicro();
@@ -701,7 +699,7 @@
 					}
 					txmhomedir = new File(System.getProperty("user.home"), "TXM-"+version); //$NON-NLS-1$ //$NON-NLS-2$
 				} else {
-					txmhomedir = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE).trim());
+					txmhomedir = new File(Toolbox.getTxmHomePath().trim());
 				}
 
 				txmhomedir.mkdirs(); // creates the directory if needed
@@ -712,8 +710,7 @@
 				}
 
 				// save preference if USER_TXM_HOME has changed
-				TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, 
-						TBXPreferences.USER_TXM_HOME, txmhomedir.getAbsolutePath());
+				TBXPreferences.getInstance().put(TBXPreferences.USER_TXM_HOME, txmhomedir.getAbsolutePath());
 				TXMPreferences.saveAll();
 
 				Log.info("TXM User directory is set to: "+txmhomedir);
@@ -807,7 +804,7 @@
 		ArrayList<String> basenames = new ArrayList<String>();
 		ArrayList<String> sampleCorpusLoaded = new ArrayList<String>();
 
-		String installdirpath = TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE);
+		String installdirpath = Toolbox.getInstallDirectory();
 		File sampleCorporaDirectory = new File(installdirpath, "samples");
 		// load corpora from the install directory
 		if (sampleCorporaDirectory.exists()) { //$NON-NLS-1$
@@ -815,7 +812,7 @@
 			monitor.setTaskName(TXMUIMessages.ApplicationWorkbenchAdvisor_11);
 			//File corporaDir = new File(txmhomedir.getAbsolutePath(), "corpora"); //$NON-NLS-1$
 			if (txmhomedir == null) {
-				txmhomedir = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE).trim());
+				txmhomedir = new File(Toolbox.getTxmHomePath().trim());
 			}
 			corporaDir = new File(txmhomedir, "corpora"); //$NON-NLS-1$
 			corporaDir.mkdir();
@@ -960,7 +957,7 @@
 	 */
 	private void callStartScript() {
 		try {
-			File startupScript = new File(TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.USER_TXM_HOME), "scripts/user/start.groovy");
+			File startupScript = new File(Toolbox.getTxmHomePath(), "scripts/user/start.groovy");
 			if (startupScript.exists() && startupScript.canRead()) {
 				ExecuteGroovyScript.executeScript(startupScript.getAbsolutePath(), null, null, true);
 			}
@@ -975,7 +972,7 @@
 	 */
 	private void callStopScript() {
 		try {
-			File stopScript = new File(TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.USER_TXM_HOME), "scripts/user/stop.groovy");
+			File stopScript = new File(Toolbox.getTxmHomePath(), "scripts/user/stop.groovy");
 			if (stopScript.exists() && stopScript.canRead()) {
 
 				ExecuteGroovyScript.executeScript(stopScript.getAbsolutePath(), null, null, true);
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteScript.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteScript.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteScript.java	(revision 1026)
@@ -47,6 +47,7 @@
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.rcp.editors.TxtEditor;
@@ -109,7 +110,7 @@
 			}
 			dialog.setFilterExtensions(new String[] { "*.groovy" }); //$NON-NLS-1$
 
-			String scriptCurrentDir = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE)+ "/scripts";
+			String scriptCurrentDir = Toolbox.getTxmHomePath() + "/scripts";
 
 			dialog.setFilterPath(scriptCurrentDir);
 			result = dialog.open();
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyText.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyText.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyText.java	(revision 1026)
@@ -50,6 +50,7 @@
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.ui.ide.FileStoreEditorInput;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.rcp.Application;
@@ -110,7 +111,7 @@
 					scriptfile));
 			return null;
 		}
-		final String scriptRootDir = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE)+ "/scripts";
+		final String scriptRootDir = Toolbox.getTxmHomePath() + "/scripts";
 
 		// get current selection of the corpora view
 				final Object corpusViewSelection = CorporaView.getFirstSelectedObject();
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyScriptFromFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyScriptFromFile.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/ExecuteGroovyScriptFromFile.java	(revision 1026)
@@ -38,6 +38,7 @@
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.rcp.swt.dialog.LastOpened;
@@ -60,7 +61,7 @@
 		ISelection selection = HandlerUtil.getCurrentSelection(event);
 		Shell shell = HandlerUtil.getActiveWorkbenchWindowChecked(event).getShell();
 
-		String scriptCurrentDir = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE)+ "/scripts";
+		String scriptCurrentDir = Toolbox.getTxmHomePath() + "/scripts";
 
 		FileDialog dialog = new FileDialog(shell, SWT.OPEN);
 
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/CreateMacro.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/CreateMacro.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/scripts/CreateMacro.java	(revision 1026)
@@ -42,6 +42,7 @@
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.rcp.handlers.files.EditFile;
@@ -64,7 +65,7 @@
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 
 		//get scripts dir
-		String scriptRootDir = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE)+ "/scripts";
+		String scriptRootDir = Toolbox.getTxmHomePath() + "/scripts";
 		File currentRootDir = new File(scriptRootDir, "macro"); //$NON-NLS-1$
 
 		//if selection is a file, get its path
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/export/ExportResult.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/export/ExportResult.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/export/ExportResult.java	(revision 1026)
@@ -114,10 +114,10 @@
 				return null;
 			}
 
-			final String encoding = TXMPreferences.getString(TBXPreferences.EXPORT_ENCODING, TBXPreferences.PREFERENCES_NODE);
-			String _colseparator = TXMPreferences.getString(TBXPreferences.EXPORT_COL_SEPARATOR, TBXPreferences.PREFERENCES_NODE);
+			final String encoding = TBXPreferences.getInstance().getString(TBXPreferences.EXPORT_ENCODING);
+			String _colseparator = TBXPreferences.getInstance().getString(TBXPreferences.EXPORT_COL_SEPARATOR);
 			final String colseparator = _colseparator;
-			String _txtseparator = TXMPreferences.getString(TBXPreferences.EXPORT_TXT_SEPARATOR, TBXPreferences.PREFERENCES_NODE);
+			String _txtseparator = TBXPreferences.getInstance().getString(TBXPreferences.EXPORT_TXT_SEPARATOR);
 			final String txtseparator = _txtseparator;
 
 			JobHandler jobhandler = new JobHandler(TXMUIMessages.ExportResult_0) {
@@ -137,7 +137,7 @@
 
 						if (outfile.exists()) {
 							// Open internal editor in the UI thread
-							if(TXMPreferences.getBoolean(TBXPreferences.EXPORT_SHOW, TBXPreferences.PREFERENCES_NODE))	{
+							if(TBXPreferences.getInstance().getBoolean(TBXPreferences.EXPORT_SHOW))	{
 								this.syncExec(new Runnable() {
 									@Override
 									public void run() {
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/files/CreateFile.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/files/CreateFile.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/files/CreateFile.java	(revision 1026)
@@ -42,8 +42,7 @@
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.handlers.HandlerUtil;
-import org.txm.core.preferences.TBXPreferences;
-import org.txm.core.preferences.TXMPreferences;
+import org.txm.Toolbox;
 import org.txm.rcp.messages.TXMUIMessages;
 import org.txm.rcp.swt.dialog.LastOpened;
 import org.txm.rcp.views.fileexplorer.Explorer;
@@ -62,7 +61,7 @@
 	public Object execute(ExecutionEvent event) throws ExecutionException {
 
 		//get scripts dir
-		String scriptCurrentDir = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE)+ "/scripts";
+		String scriptCurrentDir = Toolbox.getTxmHomePath() + "/scripts";
 
 		boolean useSavedValue = true; // if a file/folder is selected, dont use the saved value
 		
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/files/CreateFolder.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/files/CreateFolder.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/handlers/files/CreateFolder.java	(revision 1026)
@@ -40,6 +40,7 @@
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.rcp.messages.TXMUIMessages;
@@ -61,9 +62,7 @@
 		IWorkbenchPart page = HandlerUtil.getActiveWorkbenchWindow(event)
 				.getActivePage().getActivePart();
 
-		//get scripts dir
-		//FIXME: the default value should be defined in the preferences initializer
-		String dir = TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, null, TBXPreferences.PREFERENCES_NODE, System.getProperty("user.home")); //$NON-NLS-1$
+		String dir = Toolbox.getTxmHomePath();
 
 		//if selection is a file, get its path
 		ISelection selection = HandlerUtil.getCurrentSelection(event);
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapter.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapter.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/adapters/TXMResultAdapter.java	(revision 1026)
@@ -31,7 +31,7 @@
 
 	@Override
 	public Object[] getChildren(Object result) {
-		return ((TXMResult) result).getChildren(!TBXPreferences.getBoolean(TBXPreferences.SHOW_ALL_RESULT_NODES, TBXPreferences.PREFERENCES_NODE)).toArray();
+		return ((TXMResult) result).getChildren(!TBXPreferences.getInstance().getBoolean(TBXPreferences.SHOW_ALL_RESULT_NODES)).toArray();
 	}
 
 	@Override
Index: tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/ExpertEnabled.java
===================================================================
--- tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/ExpertEnabled.java	(revision 1025)
+++ tmp/org.txm.rcp/src/main/java/org/txm/rcp/testers/ExpertEnabled.java	(revision 1026)
@@ -13,7 +13,7 @@
 	public boolean test(Object receiver, String property, Object[] args,
 			Object expectedValue) {
 
-		boolean expert = TXMPreferences.getBoolean(TBXPreferences.EXPERT_USER, TBXPreferences.PREFERENCES_NODE);
+		boolean expert = TBXPreferences.getInstance().getBoolean(TBXPreferences.EXPERT_USER);
 		//System.out.println("IS expert enabled: "+expert);
 		return expert;
 	}
Index: tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/preferences/CAPreferencePage.java
===================================================================
--- tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/preferences/CAPreferencePage.java	(revision 1025)
+++ tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/preferences/CAPreferencePage.java	(revision 1026)
@@ -161,7 +161,7 @@
 	
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(CAPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(CAPreferences.getInstance().getPreferencesNodeQualifier()));
 		//this.setDescription(Messages.CorrespondanceAnalysisEditorInput_10);
 		//this.setTitle(CAUIMessages.CorrespondanceAnalysisEditorInput_10);
 		this.setImageDescriptor(CAAdapterFactory.ICON);
Index: tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/ColRowInfosLabelProvider.java
===================================================================
--- tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/ColRowInfosLabelProvider.java	(revision 1025)
+++ tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/ColRowInfosLabelProvider.java	(revision 1026)
@@ -79,32 +79,32 @@
 		this.names = names;
 		for (int i = 0; i < names.length; i++) {
 			if (names[i].startsWith(CACoreMessages.common_mass)) {
-				String pattern = TXMPreferences.getString(CAPreferences.MASS_DISPLAY_FORMAT, CAPreferences.PREFERENCES_NODE);
+				String pattern = CAPreferences.getInstance().getString(CAPreferences.MASS_DISPLAY_FORMAT);
 			if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
 					masspattern = new DecimalFormat(pattern);
 			} else if (names[i].startsWith(CAUIMessages.ColRowInfosLabelProvider_9)) {
-				String pattern = TXMPreferences.getString(CAPreferences.CHI_DISPLAY_FORMAT, CAPreferences.PREFERENCES_NODE);
+				String pattern = CAPreferences.getInstance().getString(CAPreferences.CHI_DISPLAY_FORMAT);
 				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
 					chipattern = new DecimalFormat(pattern);
 			} else if (names[i].startsWith(CACoreMessages.common_dist)) {
-				String pattern = TXMPreferences.getString(CAPreferences.DIST_DISPLAY_FORMAT, CAPreferences.PREFERENCES_NODE);
+				String pattern = CAPreferences.getInstance().getString(CAPreferences.DIST_DISPLAY_FORMAT);
 				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
 					distpattern = new DecimalFormat(pattern);
 			} else if (names[i].startsWith(CACoreMessages.common_cos2)) {
-				String pattern = TXMPreferences.getString(CAPreferences.COS2_DISPLAY_FORMAT, CAPreferences.PREFERENCES_NODE);
+				String pattern = CAPreferences.getInstance().getString(CAPreferences.COS2_DISPLAY_FORMAT);
 				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
 					cos2pattern = new DecimalFormat(pattern);
 			} else if (names[i].startsWith("c") && names[i].length() == 2) //$NON-NLS-1$
 			{
-				String pattern = TXMPreferences.getString(CAPreferences.COORD_DISPLAY_FORMAT, CAPreferences.PREFERENCES_NODE);
+				String pattern = CAPreferences.getInstance().getString(CAPreferences.COORD_DISPLAY_FORMAT);
 				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
 					coordpattern = new DecimalFormat(pattern);
 			} else if (names[i].startsWith(CACoreMessages.common_cont)) {
-				String pattern = TXMPreferences.getString(CAPreferences.CONTRIB_DISPLAY_FORMAT, CAPreferences.PREFERENCES_NODE);
+				String pattern = CAPreferences.getInstance().getString(CAPreferences.CONTRIB_DISPLAY_FORMAT);
 				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
 					contribpattern = new DecimalFormat(pattern);
 			} else if (names[i].startsWith(CAUIMessages.ColRowInfosLabelProvider_19) && names[i].length() == 3) {
-				String pattern = TXMPreferences.getString(CAPreferences.QUALITY_DISPLAY_FORMAT, CAPreferences.PREFERENCES_NODE);
+				String pattern = CAPreferences.getInstance().getString(CAPreferences.QUALITY_DISPLAY_FORMAT);
 				if (pattern != null && !pattern.trim().equals("")) //$NON-NLS-1$
 					qualitypattern = new DecimalFormat(pattern);
 			}
Index: tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAParametersDialog.java
===================================================================
--- tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAParametersDialog.java	(revision 1025)
+++ tmp/org.txm.ca.rcp/src/org/txm/ca/rcp/editors/CAParametersDialog.java	(revision 1026)
@@ -91,10 +91,10 @@
 	String mess;
 	
 	/** The max, default value read from CA preferences. */
-	private int vmax = TXMPreferences.getInt(CAPreferences.V_MAX, CAPreferences.PREFERENCES_NODE);
+	private int vmax = CAPreferences.getInstance().getInt(CAPreferences.V_MAX);
 	
 	/** The fmin, default value read from CA preferences. */
-	private int fmin = TXMPreferences.getInt(CAPreferences.F_MIN, CAPreferences.PREFERENCES_NODE);
+	private int fmin = CAPreferences.getInstance().getInt(CAPreferences.F_MIN);
 
 	/**
 	 * Instantiates a new compute correspondence analysis dialog.
Index: tmp/org.txm.specificities.core/src/org/txm/specificities/core/preferences/SpecificitiesPreferences.java
===================================================================
--- tmp/org.txm.specificities.core/src/org/txm/specificities/core/preferences/SpecificitiesPreferences.java	(revision 1025)
+++ tmp/org.txm.specificities.core/src/org/txm/specificities/core/preferences/SpecificitiesPreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.specificities.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
 import org.txm.core.preferences.TXMPreferences;
@@ -17,9 +15,6 @@
 public class SpecificitiesPreferences extends TXMPreferences {
 
 
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(SpecificitiesPreferences.class).getSymbolicName();
-	
 	/**
 	 * Maximum score.
 	 */
@@ -39,14 +34,21 @@
 
 	
 	
-	
-	public SpecificitiesPreferences() {
-		// TODO Auto-generated constructor stub
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(SpecificitiesPreferences.class)) {
+			new SpecificitiesPreferences();
+		}
+		return TXMPreferences.instances.get(SpecificitiesPreferences.class);
 	}
 
+	
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		
 		preferences.put(FORMAT, "%,.1f"); //$NON-NLS-1$
 		preferences.putInt(MAX_SCORE, 10000);
Index: tmp/org.txm.tigersearch.rcp/src/org/txm/tigersearch/editors/TIGERSearchEditor.java
===================================================================
--- tmp/org.txm.tigersearch.rcp/src/org/txm/tigersearch/editors/TIGERSearchEditor.java	(revision 1025)
+++ tmp/org.txm.tigersearch.rcp/src/org/txm/tigersearch/editors/TIGERSearchEditor.java	(revision 1026)
@@ -22,6 +22,7 @@
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.function.tigersearch.TIGERSearch;
@@ -353,7 +354,7 @@
 		setSite(site);
 		setInput(input);
 		
-		File resultDir = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "results"); //$NON-NLS-1$
+		File resultDir = new File(Toolbox.getTxmHomePath(), "results"); //$NON-NLS-1$
 		resultDir.mkdirs();
 		try {
 			svgFile = File.createTempFile("TIGERSearch", ".svg", resultDir);
Index: tmp/org.txm.cql2lsa.rcp/src/org/txm/rcp/commands/function/ComputeExpI.java
===================================================================
--- tmp/org.txm.cql2lsa.rcp/src/org/txm/rcp/commands/function/ComputeExpI.java	(revision 1025)
+++ tmp/org.txm.cql2lsa.rcp/src/org/txm/rcp/commands/function/ComputeExpI.java	(revision 1026)
@@ -45,6 +45,7 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.ui.handlers.HandlerUtil;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.functions.cql2lsa.ExpI;
@@ -136,7 +137,7 @@
 					//					qiot.addLine("eux", new Query("[word=\"eux\"]"));
 					// "je|tu|il|elle|on|nous|vous|ils|elles|celui|celle|ceux|celles|eux"
 
-					File resultDir = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "results");
+					File resultDir = new File(Toolbox.getTxmHomePath(), "results");
 					
 					writingLDAFiles(resultDir, qiot, monitor);
 				} catch (Exception e) {
Index: tmp/org.txm.dictionary.rcp/src/org/txm/dictionary/functions/jpa/DictionaryFactory.java
===================================================================
--- tmp/org.txm.dictionary.rcp/src/org/txm/dictionary/functions/jpa/DictionaryFactory.java	(revision 1025)
+++ tmp/org.txm.dictionary.rcp/src/org/txm/dictionary/functions/jpa/DictionaryFactory.java	(revision 1026)
@@ -37,7 +37,7 @@
 	public Dictionary getDictionary(String name) {
 		if (this.containsKey(name)) return this.get(name);
 		
-		File dictionariesDirectory = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "dictionaries");
+		File dictionariesDirectory = new File(Toolbox.getTxmHomePath(), "dictionaries");
 		dictionariesDirectory.mkdirs(); // just in case
 		
 		if (this.containsKey(name)) return this.get(name);
Index: tmp/org.txm.dictionary.rcp/src/org/txm/dictionary/functions/sql/DictionaryManager.java
===================================================================
--- tmp/org.txm.dictionary.rcp/src/org/txm/dictionary/functions/sql/DictionaryManager.java	(revision 1025)
+++ tmp/org.txm.dictionary.rcp/src/org/txm/dictionary/functions/sql/DictionaryManager.java	(revision 1026)
@@ -21,7 +21,7 @@
 	
 	public static DictionaryManager getInstance() throws Exception {
 		if (dm != null) return dm;
-		File dir = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "dictionaries");
+		File dir = new File(Toolbox.getTxmHomePath(), "dictionaries");
 		System.out.println("Dictionaries db path: "+dir.getAbsolutePath());
 		dir.mkdirs();
 		dm = new DictionaryManager(dir);
Index: tmp/org.txm.dictionary.rcp/src/org/txm/dictionary/commands/DoInstallStep.java
===================================================================
--- tmp/org.txm.dictionary.rcp/src/org/txm/dictionary/commands/DoInstallStep.java	(revision 1025)
+++ tmp/org.txm.dictionary.rcp/src/org/txm/dictionary/commands/DoInstallStep.java	(revision 1026)
@@ -42,7 +42,7 @@
 		}
 		System.out.println("Post-installing Dictionary version="+currentVersion);
 		
-		File macroDirectory = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "scripts/macro/org/txm/macro");
+		File macroDirectory = new File(Toolbox.getTxmHomePath(), "scripts/macro/org/txm/macro");
 		if (!BundleUtils.copyFiles("Dictionary", "src", "org/txm/macro/", "frolex", macroDirectory)) {
 			System.out.println("Error while coping Dictionary org/txm/macro/frolex in "+macroDirectory.getAbsolutePath());
 			return;
Index: tmp/org.txm.core/src/java/org/txm/ToolboxOld.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/ToolboxOld.java	(revision 1025)
+++ tmp/org.txm.core/src/java/org/txm/ToolboxOld.java	(revision 1026)
@@ -1,449 +0,0 @@
-// Copyright © 2010-2013 ENS de Lyon.
-// Copyright © 2007-2010 ENS de Lyon, CNRS, INRP, University of
-// Lyon 2, University of Franche-Comté, University of Nice
-// Sophia Antipolis, University of Paris 3.
-// 
-// The TXM platform is free software: you can redistribute it
-// and/or modify it under the terms of the GNU General Public
-// License as published by the Free Software Foundation,
-// either version 2 of the License, or (at your option) any
-// later version.
-// 
-// The TXM platform is distributed in the hope that it will be
-// useful, but WITHOUT ANY WARRANTY; without even the implied
-// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-// PURPOSE. See the GNU General Public License for more
-// details.
-// 
-// You should have received a copy of the GNU General
-// Public License along with the TXM platform. If not, see
-// http://www.gnu.org/licenses.
-// 
-// 
-// 
-// $LastChangedDate: 2017-01-24 18:11:42 +0100 (Tue, 24 Jan 2017) $
-// $LastChangedRevision: 3400 $
-// $LastChangedBy: mdecorde $ 
-//
-
-package org.txm;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Arrays;
-import java.util.logging.Level;
-
-import org.apache.commons.lang.StringUtils;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SafeRunner;
-import org.txm.core.messages.TXMCoreMessages;
-import org.txm.core.preferences.TBXPreferences;
-import org.txm.core.preferences.TXMPreferences;
-import org.txm.objects.Workspace;
-import org.txm.utils.OSDetector;
-import org.txm.utils.logger.Log;
-
-/**
- * The Class Toolbox. A collection of static methods to initialize the toolbox
- * It initialize its StatEngine : R, and its SearchEngine : CWB
- * 
- * @author jmague, mdecorde, sjacquot
- */
-public class ToolboxOld {
-
-	private static boolean initializing = false;
-
-	/** The state. */
-	private static boolean state = false;
-
-	/** The state wospace. */
-	private static boolean stateWorkspace = false;
-
-	/** The workspace. */
-	public static Workspace workspace;
-
-	/**
-	 * if searchengine or statengine or workspace is not ready then the toolbox
-	 * is not ready.
-	 *
-	 * @return true, if successful
-	 */
-	private static boolean checkState() {
-		state = stateWorkspace;
-		return state;
-	}
-
-	/**
-	 * Use TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, key) instead
-	 * 
-	 * @param key
-	 * @return
-	 */
-	@Deprecated
-	public static String getParam(String key) {
-		return TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, key);
-	}
-
-	/**
-	 * Initializes the toolbox with the parameters read in the file
-	 * textometrie.properties found in the user home directory
-	 *
-	 * @return true, if successful
-	 * @throws IOException Signals that an I/O exception has occurred.
-	 */
-	public static boolean initialize() throws Exception {
-		initializing = true;
-		File home = new File(System.getProperty("user.home")); //$NON-NLS-1$
-		File txmDirectory = new File(home, ".txm"); //$NON-NLS-1$
-		if (!txmDirectory.exists()) {
-			txmDirectory.mkdir();
-		}
-		File configFile = new File(txmDirectory, "textometrie.properties"); //$NON-NLS-1$
-		if (!configFile.exists()) {
-			initializing = false;
-			throw new IllegalArgumentException(TXMCoreMessages.Toolbox_0 
-					+ configFile.getAbsolutePath()
-					+ TXMCoreMessages.Toolbox_16); 
-		}
-
-		boolean ret = initialize(configFile);
-		initializing = false;
-		return ret;
-	}
-
-	/**
-	 * Initializes the Toolbox using the INSTANCE SCOPE preferences of TXMPreferences
-	 *
-	 * @param props the props
-	 * @return true, if successful
-	 * @throws Exception 
-	 */
-	public static boolean initialize(Class preferencesStore) throws Exception {
-		initializing = true;
-
-		try {
-			pluginsPreinstallation();
-		} catch(Exception e) {
-			System.out.println("Error while pre-installaing plugins: "+e.getLocalizedMessage());
-		}
-	
-		try {
-
-			// initialize workspace : list of corpus loaded in TXM
-			stateWorkspace = startWorkspace();
-
-			Log.warning("Initializing logger");
-			Log.setLevel(Level.parse(TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.LOG_LEVEL)));
-			Log.setPrintInConsole(Boolean.parseBoolean(TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.ADD_TECH_LOGS)));
-
-			if (TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.LOG_DIR) != null)
-				Log.setPrintInFile(Boolean.parseBoolean(TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.LOG_IN_FILE)), new File(TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.LOG_DIR)));
-			else
-				Log.setPrintInFile(Boolean.parseBoolean(TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.LOG_IN_FILE)));
-
-			Log.warning("Killing CQP and RServe process if any");
-			processKiller();
-
-			Log.info("Toolbox states: "+TXMCoreMessages.Toolbox_22 + stateWorkspace); //$NON-NLS-1$
-		} catch (Exception e) {
-			initializing = false;
-			throw e;
-		}
-		
-		try {
-			pluginsPostinstallation();
-		} catch(Exception e) {
-			System.out.println("Error while post-installaing plugins: "+e.getLocalizedMessage());
-		}
-		initializing = false;
-		return checkState();
-	}
-
-	/**
-	 * initialize the toolbox from a UTF-8 file
-	 * 
-	 * key1=value1 key2=value2.
-	 *
-	 * @param file the file
-	 * @return true, if successful
-	 * @throws FileNotFoundException the file not found exception
-	 * @throws IOException Signals that an I/O exception has occurred.
-	 */
-	public static boolean initialize(File file) throws Exception {
-		initializing = true;
-		String encoding = "UTF-8"; //$NON-NLS-1$
-
-		// Windows OS
-		if (OSDetector.isFamilyWindows()) {
-			encoding = "ISO-8859-1"; //$NON-NLS-1$
-		}		
-
-		boolean ret = initialize(file, encoding);
-		initializing = false;
-		return ret;
-	}
-
-	/**
-	 * Initializes the toolbox with the parameters read in the properties file
-	 * passed in argument.
-	 *
-	 * @param file the file
-	 * @param encoding the encoding
-	 * @return true, if successful
-	 * @throws FileNotFoundException the file not found exception
-	 * @throws IOException Signals that an I/O exception has occurred.
-	 */
-	public static boolean initialize(File file, String encoding) throws Exception {
-		initializing = true;
-
-		try {
-			BufferedReader input = new BufferedReader(new InputStreamReader(
-					new FileInputStream(file), encoding));
-			String line = input.readLine();
-			while (line != null) {
-				String[] split = line.split("="); //$NON-NLS-1$
-				if (split.length == 2) {
-					TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, split[0], split[1]);
-				} else if (split.length > 2) {
-					String[] subsplit = new String[split.length - 1];
-					System.arraycopy(split, 1, subsplit, 0, split.length - 1);
-					TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, split[0], StringUtils.join(subsplit, "="));
-				}
-				line = input.readLine();
-			}
-			input.close();
-		} catch (Exception e) {
-			initializing = false;
-			System.err.println(e);
-			throw e;
-		}
-		return initialize(TBXPreferences.class);
-	}
-
-	/**
-	 * test if searchEngine and statEngine and Workspace are initialized.
-	 *
-	 * @return true, if is initialized
-	 */
-	public static boolean isInitialized() {
-		return checkState();
-	}
-	
-	public static boolean isInitializing() {
-		return initializing;
-	}
-
-	
-	/**
-	 * Allow to install a TXM extension AFTER the Toolbox is initialized
-	 */
-	private static void pluginsPostinstallation() {
-
-		IConfigurationElement[] config = Platform.getExtensionRegistry()
-				.getConfigurationElementsFor(PostInstallationStep.EXTENSION_ID);
-		Log.warning(TXMCoreMessages.ApplicationWorkbenchAdvisor_15);
-		Log.warning(Arrays.toString(config));
-
-		for (IConfigurationElement e : config) {
-			try {
-				Log.warning(TXMCoreMessages.ApplicationWorkbenchAdvisor_14+e.getName()+" from "+e.getContributor().getName());
-				final Object o = e.createExecutableExtension("class"); //$NON-NLS-1$
-				if (o instanceof PostInstallationStep) {
-					ISafeRunnable runnable = new ISafeRunnable() {
-						@Override
-						public void handleException(Throwable exception) {
-							System.out.println(TXMCoreMessages.ApplicationWorkbenchAdvisor_6+ exception);
-						}
-
-						@Override
-						public void run() throws Exception {
-							((PostInstallationStep) o).install();
-						}
-					};
-					SafeRunner.run(runnable);
-				}
-			} catch (Exception ex) {
-				System.out.println("Exception while installing "+e.getName()+": "+ex.getMessage());
-			}
-		}
-	}
-	
-	/**
-	 * Allow to install a TXM extension BEFORE the Toolbox is initialized
-	 */
-	private static void pluginsPreinstallation() {
-
-		IConfigurationElement[] config = Platform.getExtensionRegistry().getConfigurationElementsFor(PostInstallationStep.EXTENSION_ID);
-		Log.warning(TXMCoreMessages.ApplicationWorkbenchAdvisor_15);
-		Log.warning(Arrays.toString(config));
-
-		for (IConfigurationElement e : config) {
-			try {
-				Log.warning(TXMCoreMessages.ApplicationWorkbenchAdvisor_14+e.getName()+" from "+e.getContributor().getName());
-				final Object o = e.createExecutableExtension("class"); //$NON-NLS-1$
-				if (o instanceof PostInstallationStep) {
-					ISafeRunnable runnable = new ISafeRunnable() {
-						@Override
-						public void handleException(Throwable exception) {
-							System.out.println(TXMCoreMessages.ApplicationWorkbenchAdvisor_6+ exception);
-						}
-
-						@Override
-						public void run() throws Exception {
-							((PostInstallationStep) o).preInstall();
-						}
-					};
-					SafeRunner.run(runnable);
-				}
-			} catch (Exception ex) {
-				System.out.println("Exception while installing "+e.getName()+": "+ex.getMessage());
-			}
-		}
-	}
-
-	public static void preferencesUpdated() {
-		// TODO Auto-generated method stub
-	}
-
-	/**
-	 * Kill process cqpserver and R-serve for windows and unix platform Win :
-	 * taskkill or tskill Unix : pkill.
-	 */
-	static void processKiller() {
-	//	RStatsEngine.kill();
-	}
-
-	/**
-	 * Restart the toolbox.
-	 *
-	 * @return true, if successful
-	 * @throws Exception 
-	 */
-	public static boolean restart() throws Exception {
-		Toolbox.shutdown();
-		Toolbox.initialize(TBXPreferences.class);
-		return checkState();
-	}
-
-	/**
-	 * Restart the toolbox's workspace.
-	 *
-	 * @return true, if successful
-	 */
-	public static boolean restartWorkspace() {
-		try {
-			shutdownWorkspace();
-			startWorkspace();
-		} catch (Exception e) {
-			Log.severe("Error while restarting workspace: "+e.getLocalizedMessage());
-		}
-		return checkState();
-	}
-
-	/**
-	 * use TBXPreferences.setString(key, value) instead
-	 * 
-	 * @param key
-	 * @param value
-	 */
-	@Deprecated
-	public static void setParam(String key, String value) {
-		TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, key, value);
-	}
-
-	/**
-	 * Shut the toolbox down.
-	 */
-	public static void shutdown() {
-		if(Toolbox.workspace != null)
-			Toolbox.workspace.save();
-		Toolbox.workspace = null;
-		state = false;
-	}
-
-	/**
-	 * Shut the toolbox workspace down.
-	 */
-	public static void shutdownWorkspace() {
-		try {
-			Toolbox.workspace.save();
-			Toolbox.workspace = null;
-			stateWorkspace = false;
-			state = false;
-		} catch (Exception e) {
-			Log.severe("Error while closing workspace: "+e.getLocalizedMessage());
-		}
-	}
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	/*
-	/**
-	 * start the workspace, creates a new one if WORKSPACE_LOCATION is wrong.
-	 *
-	 * @return true, if successful
-	 */
-	private static boolean startWorkspace() {
-		try {
-			System.out.print(TXMCoreMessages.Toolbox_workspace_init);
-			String txmhome = TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.USER_TXM_HOME);
-			if (txmhome.length() == 0) {
-				stateWorkspace = false;
-				return false;
-			}
-			String location = txmhome+"workspaces/default.xml";//TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.WORKSPACE_LOCATION);
-			
-			System.out.println("Toolbox.startWorkspace(): workspace location = " + location);
-			
-			if (!new File(location).exists()) {
-				Log.info(TXMCoreMessages.Toolbox_10 + location); 
-				workspace = Workspace.createEmptyWorkspaceDefinition(new File(location));
-			} else {
-				workspace = new Workspace(new File(location));
-			}
-			Log.info(TXMCoreMessages.Toolbox_12 + location); 
-			stateWorkspace = true;
-
-			if (workspace == null || workspace.getProject("default") == null) { //$NON-NLS-1$
-				Log.severe(TXMCoreMessages.Toolbox_14 + location); 
-				stateWorkspace = false;
-				return false;
-			} else {
-				System.out.println(TXMCoreMessages.common_done);
-			}
-		} catch (Exception e) {
-//			System.err.println(TXMCoreMessages.Toolbox_workspace_init_failed + TXMPreferences.getString(TBXPreferences.PREFERENCES_NODE, TBXPreferences.WORKSPACE_LOCATION)); 
-			Log.severe(TXMCoreMessages.Toolbox_15 + Log.toString(e));
-			Log.printStackTrace(e);
-			stateWorkspace = false;
-		}
-		return workspace != null;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#finalize()
-	 */
-	@Override
-	protected void finalize() throws Throwable {
-		try {
-			Toolbox.shutdown();
-		} finally {
-			super.finalize();
-		}
-	}
-}
Index: tmp/org.txm.core/src/java/org/txm/utils/BundleUtils.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/utils/BundleUtils.java	(revision 1025)
+++ tmp/org.txm.core/src/java/org/txm/utils/BundleUtils.java	(revision 1026)
@@ -7,6 +7,7 @@
 import org.osgi.framework.Bundle;
 import org.osgi.framework.Version;
 import org.osgi.framework.wiring.BundleWiring;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.utils.io.FileCopy;
@@ -175,7 +176,7 @@
 			path = System.getProperty("eclipse.home.location");
 		}
 		if (path == null) {
-			path = TXMPreferences.getString(TBXPreferences.INSTALL_DIR, TBXPreferences.PREFERENCES_NODE);
+			path = Toolbox.getPreference(TBXPreferences.INSTALL_DIR);
 		}
 		return path;
 	}
Index: tmp/org.txm.core/src/java/org/txm/Toolbox.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 1025)
+++ tmp/org.txm.core/src/java/org/txm/Toolbox.java	(revision 1026)
@@ -140,7 +140,7 @@
 	 * @return
 	 */
 	public static String getPreference(String key) {
-		return TXMPreferences.getString(key, TBXPreferences.PREFERENCES_NODE);
+		return TBXPreferences.getInstance().getString(key);
 	}
 
 	/**
@@ -149,7 +149,7 @@
 	 * @param value
 	 */
 	public static void setPreference(String key, Object value) {
-		TXMPreferences.put(TBXPreferences.PREFERENCES_NODE, key, value);
+		TBXPreferences.getInstance().put(key, value);
 	}
 
 	
@@ -231,13 +231,13 @@
 
 			Log.warning("Initializing logger...");
 			Log.setLevel(Level.parse(getPreference(TBXPreferences.LOG_LEVEL)));
-			Log.setPrintInConsole(TXMPreferences.getBoolean(TBXPreferences.ADD_TECH_LOGS, TBXPreferences.PREFERENCES_NODE));
+			Log.setPrintInConsole(TBXPreferences.getInstance().getBoolean(TBXPreferences.ADD_TECH_LOGS));
 
 			if (!getPreference(TBXPreferences.LOG_DIR).isEmpty()) {
-				Log.setPrintInFile(TXMPreferences.getBoolean(TBXPreferences.LOG_IN_FILE, TBXPreferences.PREFERENCES_NODE), new File(getPreference(TBXPreferences.LOG_DIR)));
+				Log.setPrintInFile(TBXPreferences.getInstance().getBoolean(TBXPreferences.LOG_IN_FILE), new File(getPreference(TBXPreferences.LOG_DIR)));
 			}
 			else {
-				Log.setPrintInFile(TXMPreferences.getBoolean(TBXPreferences.LOG_IN_FILE, TBXPreferences.PREFERENCES_NODE));
+				Log.setPrintInFile(TBXPreferences.getInstance().getBoolean(TBXPreferences.LOG_IN_FILE));
 			}
 
 		} catch (Exception e) {
Index: tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java	(revision 1025)
+++ tmp/org.txm.core/src/java/org/txm/core/preferences/TXMPreferences.java	(revision 1026)
@@ -162,53 +162,83 @@
 	 */
 	public static final String N_LINES_PER_PAGE = "n_lines_per_page"; //$NON-NLS-1$
 
+	/**
+	 * Preferences node qualifier of the instance. 
+	 */
+	protected String preferencesNode;
+	
+	/**
+	 * Instances map.
+	 */
+	protected static Map<Class<? extends TXMPreferences>, TXMPreferences> instances = new HashMap<>();
 
-	// FIXME: tests ********************************************************************************
+	
+
+	/**
+	 * 
+	 */
+	public TXMPreferences() {
+		super();
+		TXMPreferences.instances.put(this.getClass(), this);
+		this.preferencesNode = FrameworkUtil.getBundle(this.getClass()).getSymbolicName();
+		Log.info("TXMPreferences.TXMPreferences(): preferences node = " + this.preferencesNode);
+	}
+
+
+	/**
+	 * 
+	 * @param key
+	 * @return
+	 */
 	public double getDouble(String key)	{
 		return getDouble(key, this.preferencesNode);
 	}
 
+	/**
+	 * 
+	 * @param key
+	 * @return
+	 */
 	public boolean getBoolean(String key)	{
 		return getBoolean(key, this.preferencesNode);
 	}
 
+	/**
+	 * 
+	 * @param key
+	 * @return
+	 */
 	public int getInt(String key)	{
 		return getInt(key, this.preferencesNode);
 	}
 
+	/**
+	 * 
+	 * @param key
+	 * @return
+	 */
 	public long getLong(String key)	{
 		return getLong(key, this.preferencesNode);
 	}
 	
+	/**
+	 * 
+	 * @param key
+	 * @return
+	 */
 	public String getString(String key)	{
 		return getString(key, this.preferencesNode);
 	}
 
 	/**
+	 * Gets the preferences node qualifier of the instance.
 	 * @return the preferencesNode
 	 */
-	public String getPreferencesNode() {
+	public String getPreferencesNodeQualifier() {
 		return preferencesNode;
 	}
-	
-	public TXMPreferences() {
-		super();
-		TXMPreferences.instances.put(this.getClass(), this);
-		this.preferencesNode = FrameworkUtil.getBundle(this.getClass()).getSymbolicName();
-		Log.info("TXMPreferences.TXMPreferences(): preferences node = " + this.preferencesNode);
-	}
 
-//	public TXMPreferences() {
-//		this(null);
-//	}
-//
 	
-	protected String preferencesNode;
-	protected static Map<Class<? extends TXMPreferences>, TXMPreferences> instances = new HashMap<>();
-
-	// FIXME: tests end ********************************************************************************
-	
-	
 	/**
 	 * Stores a pairs of key / value in a local node dedicated to the specified result. The node qualifier is generated by the <code>Object.toString()</code> method.
 	 * 
@@ -1375,6 +1405,14 @@
 		}
 	}
 
+	/**
+	 * 
+	 * @param key
+	 * @param value
+	 */
+	public void put(String key, Object value) {
+		put(this.preferencesNode, key, value);
+	}
 
 
 	/**
Index: tmp/org.txm.core/src/java/org/txm/core/preferences/TBXPreferences.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/preferences/TBXPreferences.java	(revision 1025)
+++ tmp/org.txm.core/src/java/org/txm/core/preferences/TBXPreferences.java	(revision 1026)
@@ -1,13 +1,12 @@
 package org.txm.core.preferences;
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
+import java.util.Locale;
+
 import org.osgi.service.prefs.Preferences;
+import org.txm.Toolbox;
 
 public class TBXPreferences extends TXMPreferences {
 	
-	public static String PREFERENCES_NODE = FrameworkUtil.getBundle(TBXPreferences.class).getSymbolicName();
-
 	public static String VERSION = "version";
 
 	public static final String FETCH_UPDATES_AT_STARTUP = "fetch_updates_at_startup";
@@ -66,14 +65,29 @@
 	 */
 	public static final String AUTO_PERSISTENCE_ENABLED = "auto_persistence_enabled"; //$NON-NLS-1$
 
+	
+	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(TBXPreferences.class)) {
+			new TBXPreferences();
+		}
+		return TXMPreferences.instances.get(TBXPreferences.class);
+	}
+
+	
 	@Override
 	public void initializeDefaultPreferences() {
 
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		
 //		//FIXME: USE osgi.instance.area later & done in ApplicationWorkbenchAdvisor
 //		preferences.put(TBXPreferences.USER_TXM_HOME, System.getProperty("user.home")+"/TXM");
-//		
+		preferences.put(TBXPreferences.USER_TXM_HOME, System.getProperty("user.home")); //$NON-NLS-1$
+		
 		preferences.putBoolean(TBXPreferences.EXPERT_USER, false); //$NON-NLS-1$
 		
 		// FIXME
@@ -82,8 +96,11 @@
 		preferences.putBoolean(TBXPreferences.LOG_IN_FILE, false); //$NON-NLS-1$
 		preferences.put(TBXPreferences.LOG_LEVEL, "SEVERE"); //$NON-NLS-1$
 		
+		preferences.put(TBXPreferences.IMPORT_DEFAULT_LANG,  Locale.getDefault().getLanguage());
 		preferences.put(TBXPreferences.UI_LOCALE, "fr"); //$NON-NLS-1$
 		
+		Locale.getDefault().getLanguage();
+		
 		preferences.put(TBXPreferences.METADATA_ENCODING, "UTF-8"); //$NON-NLS-1$
 		preferences.put(TBXPreferences.METADATA_TXTSEPARATOR, "\""); //$NON-NLS-1$
 		preferences.put(TBXPreferences.METADATA_COLSEPARATOR, ","); //$NON-NLS-1$
Index: tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 1025)
+++ tmp/org.txm.core/src/java/org/txm/core/results/TXMResult.java	(revision 1026)
@@ -201,7 +201,7 @@
 
 		this.dirty = true;
 		this.persistable = false;
-		this.userPersistable = TXMPreferences.getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED, TBXPreferences.PREFERENCES_NODE);
+		this.userPersistable = TBXPreferences.getInstance().getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED);
 		
 
 		// retrieving parent from UUID
@@ -1693,7 +1693,7 @@
 	 * @return
 	 */
 	public boolean mustBePersisted()	{
-		if(this.persistable || TBXPreferences.getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED, TBXPreferences.PREFERENCES_NODE) || this.userPersistable)	{
+		if(this.persistable || TBXPreferences.getInstance().getBoolean(TBXPreferences.AUTO_PERSISTENCE_ENABLED) || this.userPersistable)	{
 			return true;
 		}
 		return false;
Index: tmp/org.txm.core/src/java/org/txm/objects/TxmObject.java
===================================================================
--- tmp/org.txm.core/src/java/org/txm/objects/TxmObject.java	(revision 1025)
+++ tmp/org.txm.core/src/java/org/txm/objects/TxmObject.java	(revision 1026)
@@ -125,9 +125,9 @@
 	 */
 	public final boolean load() {
 		String id = this.selfElement.getAttribute(TXMPreferences.RESULT_UUID);
-		if (id != null && id.length() > 0) {
+//		if (id != null && id.length() > 0) {
 		//	this.uniqueID = id;
-		}
+	//	}
 		return _load();
 	}
 
Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChart.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChart.java	(revision 1025)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChart.java	(revision 1026)
@@ -90,7 +90,7 @@
 			extensions[i] = "*." + SWTChartsComponentsProvider.getCurrent().getChartsEngineSupportedExportFileFormats().get(i); //$NON-NLS-1$
 
 			// Store the default chart export file format index
-			if(TXMPreferences.getString(ChartsEnginePreferences.DEFAULT_EXPORT_FORMAT, ChartsEnginePreferences.PREFERENCES_NODE).equals(SWTChartsComponentsProvider.getCurrent().getEditorSupportedExportFileFormats().get(i)))	{
+			if(ChartsEnginePreferences.getInstance().getString(ChartsEnginePreferences.DEFAULT_EXPORT_FORMAT).equals(SWTChartsComponentsProvider.getCurrent().getEditorSupportedExportFileFormats().get(i)))	{
 				defaultChartFormatIndex = i;
 			}
 		}
@@ -142,7 +142,7 @@
 							Log.info(NLS.bind(TXMUIMessages.ExportResult_2, file.getAbsolutePath(), outputFormat.toUpperCase()));
 
 							// Open internal editor in the UI thread
-							if (TXMPreferences.getBoolean(TBXPreferences.EXPORT_SHOW, TBXPreferences.PREFERENCES_NODE))	{
+							if (TBXPreferences.getInstance().getBoolean(TBXPreferences.EXPORT_SHOW))	{
 								this.syncExec(new Runnable() {
 									@Override
 									public void run() {
Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChartEditorView.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChartEditorView.java	(revision 1025)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/handlers/ExportChartEditorView.java	(revision 1026)
@@ -93,7 +93,7 @@
 			extensions[i] = "*." + chartEditor.getSWTChartsComponentsProvider().getEditorSupportedExportFileFormats().get(i); //$NON-NLS-1$
 
 			// Store the default chart export file format index
-			if(TXMPreferences.getString(ChartsEnginePreferences.DEFAULT_EXPORT_FORMAT, ChartsEnginePreferences.PREFERENCES_NODE).equals(chartEditor.getSWTChartsComponentsProvider().getEditorSupportedExportFileFormats().get(i)))	{
+			if(ChartsEnginePreferences.getInstance().getString(ChartsEnginePreferences.DEFAULT_EXPORT_FORMAT).equals(chartEditor.getSWTChartsComponentsProvider().getEditorSupportedExportFileFormats().get(i)))	{
 				defaultChartFormatIndex = i;
 			}
 		}
@@ -150,7 +150,7 @@
 							System.out.println(NLS.bind(TXMUIMessages.ExportResult_2, file.getAbsolutePath(), outputFormat.toUpperCase()));
 
 							// Open internal editor in the UI thread
-							if(TXMPreferences.getBoolean(TBXPreferences.EXPORT_SHOW, TBXPreferences.PREFERENCES_NODE))	{
+							if(TBXPreferences.getInstance().getBoolean(TBXPreferences.EXPORT_SHOW))	{
 								this.syncExec(new Runnable() {
 									@Override
 									public void run() {
Index: tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/preferences/ChartsEnginePreferencePage.java
===================================================================
--- tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/preferences/ChartsEnginePreferencePage.java	(revision 1025)
+++ tmp/org.txm.chartsengine.rcp/src/org/txm/chartsengine/rcp/preferences/ChartsEnginePreferencePage.java	(revision 1026)
@@ -120,7 +120,7 @@
 	
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(ChartsEnginePreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(ChartsEnginePreferences.getInstance().getPreferencesNodeQualifier()));
 		this.setDescription(SWTComponentsProviderMessages.ChartsEnginePreferencePage_PreferencesWillBeAppliedToNewChart);
 	}
 
@@ -140,12 +140,12 @@
 				SWTChartsComponentsProvider.setCurrrentComponentsProvider((ChartsEngine) Toolbox.getEngineManager(EngineType.CHARTS).getCurrentEngine());
 				
 				// Set the first charts engine supported export file format as default charts export file format
-				TXMPreferences.put(ChartsEnginePreferences.PREFERENCES_NODE, ChartsEnginePreferences.DEFAULT_EXPORT_FORMAT, ChartsEngine.getCurrent().getSupportedOutputFileFormats().get(0));
+				ChartsEnginePreferences.getInstance().put(ChartsEnginePreferences.DEFAULT_EXPORT_FORMAT, ChartsEngine.getCurrent().getSupportedOutputFileFormats().get(0));
 				
 				
 				// Set the new monochrome color for all charts engine theme
 				for(int i = 0; i < ChartsEngine.getChartsEngines().size(); i++) {
-					ChartsEngine.getChartsEngines().get(i).getTheme().setMonochromeColor(TXMPreferences.getString(ChartsEnginePreferences.MONOCHROME_COLOR, ChartsEnginePreferences.PREFERENCES_NODE));
+					ChartsEngine.getChartsEngines().get(i).getTheme().setMonochromeColor(ChartsEnginePreferences.getInstance().getString(ChartsEnginePreferences.MONOCHROME_COLOR));
 				}
 				
 				// FIXME: doesn't work, works only when we quit the page and go back to it
Index: tmp/org.txm.annotation.core/src/org/txm/annotation/core/preferences/AnnotationPreferences.java
===================================================================
--- tmp/org.txm.annotation.core/src/org/txm/annotation/core/preferences/AnnotationPreferences.java	(revision 1025)
+++ tmp/org.txm.annotation.core/src/org/txm/annotation/core/preferences/AnnotationPreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.annotation.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TXMPreferences;
 
@@ -14,16 +12,23 @@
  */
 public class AnnotationPreferences extends TXMPreferences {
 
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(AnnotationPreferences.class).getSymbolicName();
 	
-	public AnnotationPreferences() {
-		// TODO Auto-generated constructor stub
+
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(AnnotationPreferences.class)) {
+			new AnnotationPreferences();
+		}
+		return TXMPreferences.instances.get(AnnotationPreferences.class);
 	}
 
+	
 	@Override
 	public void initializeDefaultPreferences() {
 	
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 	}
 }
Index: tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/preferences/ReferencerPreferencePage.java
===================================================================
--- tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/preferences/ReferencerPreferencePage.java	(revision 1025)
+++ tmp/org.txm.referencer.rcp/src/org/txm/referencer/rcp/preferences/ReferencerPreferencePage.java	(revision 1026)
@@ -53,7 +53,7 @@
 
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(ReferencerPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(ReferencerPreferences.getInstance().getPreferencesNodeQualifier()));
 		this.setTitle(ReferencerUIMessages.ReferencerPreferencePage_2);
 	}
 	
Index: tmp/org.txm.concordance.core/src/org/txm/concordance/core/preferences/ConcordancePreferences.java
===================================================================
--- tmp/org.txm.concordance.core/src/org/txm/concordance/core/preferences/ConcordancePreferences.java	(revision 1025)
+++ tmp/org.txm.concordance.core/src/org/txm/concordance/core/preferences/ConcordancePreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.concordance.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TXMPreferences;
 
@@ -15,33 +13,38 @@
  */
 public class ConcordancePreferences extends TXMPreferences {
 
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(ConcordancePreferences.class).getSymbolicName();
-	
-	// FIXME: tests
-	//public static final String PREFERENCES_PREFIX = "concordance_"; //$NON-NLS-1$
-	public static final String PREFERENCES_PREFIX = ""; //$NON-NLS-1$
-	
-	public static final String N_LINES_PER_PAGE = PREFERENCES_PREFIX + "n_lines_per_page"; //$NON-NLS-1$
-	public static final String LEFT_CONTEXT_SIZE = PREFERENCES_PREFIX + "left_context_size"; //$NON-NLS-1$
-	public static final String RIGHT_CONTEXT_SIZE = PREFERENCES_PREFIX + "right_context_size"; //$NON-NLS-1$
+	public static final String N_LINES_PER_PAGE = "n_lines_per_page"; //$NON-NLS-1$
+	public static final String LEFT_CONTEXT_SIZE = "left_context_size"; //$NON-NLS-1$
+	public static final String RIGHT_CONTEXT_SIZE = "right_context_size"; //$NON-NLS-1$
 
-	public static final String LEFT_ANALYSIS_PROPERTIES = PREFERENCES_PREFIX + "left_analysis_properties"; //$NON-NLS-1$
-	public static final String KEYWORD_ANALYSIS_PROPERTIES = PREFERENCES_PREFIX + "keyword_analysis_properties"; //$NON-NLS-1$
-	public static final String RIGHT_ANALYSIS_PROPERTIES = PREFERENCES_PREFIX + "right_analysis_properties"; //$NON-NLS-1$
-	public static final String LEFT_VIEW_PROPERTIES = PREFERENCES_PREFIX + "left_view_properties"; //$NON-NLS-1$
-	public static final String KEYWORD_VIEW_PROPERTIES = PREFERENCES_PREFIX + "keyword_view_properties"; //$NON-NLS-1$
-	public static final String RIGHT_VIEW_PROPERTIES = PREFERENCES_PREFIX + "right_view_properties"; //$NON-NLS-1$
+	public static final String LEFT_ANALYSIS_PROPERTIES = "left_analysis_properties"; //$NON-NLS-1$
+	public static final String KEYWORD_ANALYSIS_PROPERTIES = "keyword_analysis_properties"; //$NON-NLS-1$
+	public static final String RIGHT_ANALYSIS_PROPERTIES = "right_analysis_properties"; //$NON-NLS-1$
+	public static final String LEFT_VIEW_PROPERTIES = "left_view_properties"; //$NON-NLS-1$
+	public static final String KEYWORD_VIEW_PROPERTIES = "keyword_view_properties"; //$NON-NLS-1$
+	public static final String RIGHT_VIEW_PROPERTIES = "right_view_properties"; //$NON-NLS-1$
 	/** The default value is "*" -> The concordance will use ref or text_id */
-	public static final String ANALYSIS_REFERENCE_PATTERN = PREFERENCES_PREFIX + "analysis_pattern"; //$NON-NLS-1$
+	public static final String ANALYSIS_REFERENCE_PATTERN = "analysis_pattern"; //$NON-NLS-1$
 	/** The default value is "*" -> The concordance will use ref or text_id */
-	public static final String VIEW_REFERENCE_PATTERN = PREFERENCES_PREFIX + "view_pattern"; //$NON-NLS-1$
+	public static final String VIEW_REFERENCE_PATTERN = "view_pattern"; //$NON-NLS-1$
 	public static final String LIMIT_CQL = "limit_cql"; //$NON-NLS-1$
 	public static final String TOP_INDEX = "top_index"; //$NON-NLS-1$
 	
+	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(ConcordancePreferences.class)) {
+			new ConcordancePreferences();
+		}
+		return TXMPreferences.instances.get(ConcordancePreferences.class);
+	}
+	
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		
 		preferences.putInt(N_LINES_PER_PAGE, 100);
 		preferences.putInt(TOP_INDEX, 0);
Index: tmp/org.txm.referencer.core/src/org/txm/referencer/core/preferences/ReferencerPreferences.java
===================================================================
--- tmp/org.txm.referencer.core/src/org/txm/referencer/core/preferences/ReferencerPreferences.java	(revision 1025)
+++ tmp/org.txm.referencer.core/src/org/txm/referencer/core/preferences/ReferencerPreferences.java	(revision 1026)
@@ -1,7 +1,5 @@
 package org.txm.referencer.core.preferences;
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TXMPreferences;
 
@@ -14,14 +12,25 @@
  */
 public class ReferencerPreferences extends TXMPreferences {
 
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(ReferencerPreferences.class).getSymbolicName();
-
 	public static final String SORT_BY_FREQUENCIES = "sort_by_frequencies"; //$NON-NLS-1$
 	public static final String PATTERN = "pattern"; //$NON-NLS-1$
 
+	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(ReferencerPreferences.class)) {
+			new ReferencerPreferences();
+		}
+		return TXMPreferences.instances.get(ReferencerPreferences.class);
+	}
+
+	
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 
 		preferences.putBoolean(SORT_BY_FREQUENCIES, false);
 
Index: tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/JFCChartsEngine.java
===================================================================
--- tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/JFCChartsEngine.java	(revision 1025)
+++ tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/JFCChartsEngine.java	(revision 1026)
@@ -90,7 +90,7 @@
 	 * Creates a JFreeChart charts engine with default Highcharts theme and output format from the preferences.
 	 */
 	public JFCChartsEngine() {
-		this(TXMPreferences.getString(JFCChartsEnginePreferences.OUTPUT_FORMAT, JFCChartsEnginePreferences.PREFERENCE_NODE));
+		this(JFCChartsEnginePreferences.getInstance().getString(JFCChartsEnginePreferences.OUTPUT_FORMAT));
 	}
 	
 
Index: tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/preferences/JFCChartsEnginePreferences.java
===================================================================
--- tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/preferences/JFCChartsEnginePreferences.java	(revision 1025)
+++ tmp/org.txm.chartsengine.jfreechart.core/src/org/txm/chartsengine/jfreechart/core/preferences/JFCChartsEnginePreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.chartsengine.jfreechart.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.chartsengine.jfreechart.core.JFCChartsEngine;
 import org.txm.core.preferences.TXMPreferences;
@@ -16,25 +14,26 @@
 public class JFCChartsEnginePreferences extends TXMPreferences {
 
 
-	public static final String PREFERENCE_NODE = FrameworkUtil.getBundle(JFCChartsEnginePreferences.class).getSymbolicName();
-	
-	
 	public final static String PREFERENCES_PREFIX = JFCChartsEngine.NAME + "_";
 	
-	
 	public static final String OUTPUT_FORMAT = PREFERENCES_PREFIX + "output_format"; //$NON-NLS-1$
 	
-	
+
 	/**
-	 * 
+	 * Gets the instance.
+	 * @return the instance
 	 */
-	public JFCChartsEnginePreferences() {
-		// TODO Auto-generated constructor stub
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(JFCChartsEnginePreferences.class)) {
+			new JFCChartsEnginePreferences();
+		}
+		return TXMPreferences.instances.get(JFCChartsEnginePreferences.class);
 	}
 
+	
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences defaultPreferences = DefaultScope.INSTANCE.getNode(PREFERENCE_NODE);
+		Preferences defaultPreferences = this.getDefaultPreferencesNode();
 		defaultPreferences.put(OUTPUT_FORMAT, JFCChartsEngine.OUTPUT_FORMAT_JFC_JAVA2D);
 	}
 	
Index: tmp/org.txm.ahc.core/src/org/txm/ahc/core/functions/AHC.java
===================================================================
--- tmp/org.txm.ahc.core/src/org/txm/ahc/core/functions/AHC.java	(revision 1025)
+++ tmp/org.txm.ahc.core/src/org/txm/ahc/core/functions/AHC.java	(revision 1026)
@@ -171,7 +171,7 @@
 
 			// reset the number of clusters to default
 			if(this.hasParameterChanged(AHCPreferences.COLUMNS_COMPUTING))	{
-				this.numberOfClusters = TXMPreferences.getInt(AHCPreferences.N_CLUSTERS, AHCPreferences.PREFERENCES_NODE);
+				this.numberOfClusters = AHCPreferences.getInstance().getInt(AHCPreferences.N_CLUSTERS);
 			}
 
 			
Index: tmp/org.txm.ahc.core/src/org/txm/ahc/core/preferences/AHCPreferences.java
===================================================================
--- tmp/org.txm.ahc.core/src/org/txm/ahc/core/preferences/AHCPreferences.java	(revision 1025)
+++ tmp/org.txm.ahc.core/src/org/txm/ahc/core/preferences/AHCPreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.ahc.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
 import org.txm.core.preferences.TXMPreferences;
@@ -16,41 +14,47 @@
  */
 public class AHCPreferences extends TXMPreferences {
 
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(AHCPreferences.class).getSymbolicName();
-
-	public static final String PREFERENCES_PREFIX = "ahc_"; //$NON-NLS-1$
-	
-	
 	/**
 	 * To display in 2D or 3D.
 	 */
-	public static final String RENDERING_2D = PREFERENCES_PREFIX + "rendering_2d"; //$NON-NLS-1$
+	public static final String RENDERING_2D = "rendering_2d"; //$NON-NLS-1$
 	
 	/**
 	 * The method (METHODS <- c("average", "single", "complete", "ward", "weighted", "flexible")).
 	 */
-	public static final String METHOD = PREFERENCES_PREFIX + "method"; //$NON-NLS-1$
+	public static final String METHOD = "method"; //$NON-NLS-1$
 	
 	/**
 	 * The metric (euclidean, manhattan).
 	 */
-	public static final String METRIC = PREFERENCES_PREFIX + "metric"; //$NON-NLS-1$
+	public static final String METRIC = "metric"; //$NON-NLS-1$
 	
 	/**
 	 * The number of clusters.
 	 */
-	public static final String N_CLUSTERS = PREFERENCES_PREFIX + "n_clusters"; //$NON-NLS-1$
+	public static final String N_CLUSTERS = "n_clusters"; //$NON-NLS-1$
 	
 	/**
 	 * To compute the columns or the rows.
 	 */
-	public static final String COLUMNS_COMPUTING = PREFERENCES_PREFIX + "columns_computing"; //$NON-NLS-1$
+	public static final String COLUMNS_COMPUTING = "columns_computing"; //$NON-NLS-1$
 	
+	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(AHCPreferences.class)) {
+			new AHCPreferences();
+		}
+		return TXMPreferences.instances.get(AHCPreferences.class);
+	}
 
+
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		
 		preferences.putBoolean(RENDERING_2D, true);
 		preferences.putInt(N_CLUSTERS, 2);
Index: tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/preferences/PartitionPreferencePage.java
===================================================================
--- tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/preferences/PartitionPreferencePage.java	(revision 1025)
+++ tmp/org.txm.partition.rcp/src/org/txm/partition/rcp/preferences/PartitionPreferencePage.java	(revision 1026)
@@ -66,7 +66,7 @@
 	
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(PartitionDimensionsPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(PartitionDimensionsPreferences.getInstance().getPreferencesNodeQualifier()));
 		this.setTitle(TXMCoreMessages.common_description);
 	}
 }
Index: tmp/org.txm.chartsengine.r.rcp/src/org/txm/rcp/chartsengine/r/preferences/RChartsEnginePreferencePage.java
===================================================================
--- tmp/org.txm.chartsengine.r.rcp/src/org/txm/rcp/chartsengine/r/preferences/RChartsEnginePreferencePage.java	(revision 1025)
+++ tmp/org.txm.chartsengine.r.rcp/src/org/txm/rcp/chartsengine/r/preferences/RChartsEnginePreferencePage.java	(revision 1026)
@@ -82,7 +82,7 @@
 	
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(RChartsEnginePreferences.PREFERENCE_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(RChartsEnginePreferences.getInstance().getPreferencesNodeQualifier()));
 	}
 
 	@Override
Index: tmp/org.txm.internalview.core/src/org/txm/internalview/core/preferences/InternalViewPreferences.java
===================================================================
--- tmp/org.txm.internalview.core/src/org/txm/internalview/core/preferences/InternalViewPreferences.java	(revision 1025)
+++ tmp/org.txm.internalview.core/src/org/txm/internalview/core/preferences/InternalViewPreferences.java	(revision 1026)
@@ -1,7 +1,5 @@
 package org.txm.internalview.core.preferences;
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
@@ -15,18 +13,27 @@
  */
 public class InternalViewPreferences extends TXMPreferences {
 
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(InternalViewPreferences.class).getSymbolicName();
-
-	
 	/**
 	 * Current page number. 
 	 */
 	public static final String CURRENT_PAGE = "current_page"; //$NON-NLS-1$
 
 	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(InternalViewPreferences.class)) {
+			new InternalViewPreferences();
+		}
+		return TXMPreferences.instances.get(InternalViewPreferences.class);
+	}
+
+	
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		
 		preferences.put(STRUCTURAL_UNIT, TBXPreferences.DEFAULT_STRUCTURAL_UNIT);
 		preferences.put(UNIT_PROPERTIES, TBXPreferences.DEFAULT_UNIT_PROPERTY);
Index: tmp/org.txm.searchengine.cqp.rcp/src/org/txm/searchengine/cqp/rcp/adapters/CorpusAdapterFactory.java
===================================================================
--- tmp/org.txm.searchengine.cqp.rcp/src/org/txm/searchengine/cqp/rcp/adapters/CorpusAdapterFactory.java	(revision 1025)
+++ tmp/org.txm.searchengine.cqp.rcp/src/org/txm/searchengine/cqp/rcp/adapters/CorpusAdapterFactory.java	(revision 1026)
@@ -60,7 +60,7 @@
 							resultsChildren.add(element);
 						}
 						// hidden results
-						else if(TBXPreferences.getBoolean(TBXPreferences.SHOW_ALL_RESULT_NODES, TBXPreferences.PREFERENCES_NODE))	{
+						else if(TBXPreferences.getInstance().getBoolean(TBXPreferences.SHOW_ALL_RESULT_NODES))	{
 							hiddentResultsChildren.add(element);
 						}
 
Index: tmp/org.txm.textsbalance.core/src/org/txm/textsbalance/core/preferences/TextsBalancePreferences.java
===================================================================
--- tmp/org.txm.textsbalance.core/src/org/txm/textsbalance/core/preferences/TextsBalancePreferences.java	(revision 1025)
+++ tmp/org.txm.textsbalance.core/src/org/txm/textsbalance/core/preferences/TextsBalancePreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.textsbalance.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
 import org.txm.core.preferences.TXMPreferences;
@@ -15,22 +13,27 @@
  */
 public class TextsBalancePreferences extends TXMPreferences {
 
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(TextsBalancePreferences.class).getSymbolicName();
 	
-	public static final String PREFERENCES_PREFIX = "texts_balance_"; //$NON-NLS-1$
+	public static final String GROUP_BY_TEXTS = "group_by_texts"; //$NON-NLS-1$
+	public static final String METHOD = "method"; //$NON-NLS-1$
 	
-	public static final String GROUP_BY_TEXTS = PREFERENCES_PREFIX + "group_by_texts"; //$NON-NLS-1$
-	public static final String METHOD = PREFERENCES_PREFIX + "method"; //$NON-NLS-1$
 	
-	// local result preferences
-	public static final String STRUCTURAL_UNIT = PREFERENCES_PREFIX + "structural_unit"; //$NON-NLS-1$
-	public static final String STRUCTURAL_UNIT_PROPERTY = PREFERENCES_PREFIX + "structural_unit_property"; //$NON-NLS-1$
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(TextsBalancePreferences.class)) {
+			new TextsBalancePreferences();
+		}
+		return TXMPreferences.instances.get(TextsBalancePreferences.class);
+	}
+
 	
 	@Override
 	public void initializeDefaultPreferences() {
 
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		preferences.putBoolean(GROUP_BY_TEXTS, true);
 		preferences.putInt(METHOD, 2);
 		
@@ -40,7 +43,7 @@
 		ChartsEnginePreferences.initializeChartsEngineSharedPreferences(preferences);
 		
 		// to disable the functionality
-		TXMPreferences.setEmpty(PREFERENCES_NODE, ChartsEnginePreferences.SHOW_GRID);
+		TXMPreferences.setEmpty(this.getPreferencesNodeQualifier(), ChartsEnginePreferences.SHOW_GRID);
 	}
 	
 	
Index: tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/preferences/ProgressionPreferencePage.java
===================================================================
--- tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/preferences/ProgressionPreferencePage.java	(revision 1025)
+++ tmp/org.txm.progression.rcp/src/org/txm/progression/rcp/preferences/ProgressionPreferencePage.java	(revision 1026)
@@ -80,7 +80,7 @@
 		//this.setPreferenceStore(new TXMPreferenceStore(ProgressionPreferences.PREFERENCES_NODE));
 		//System.out.println("ProgressionPreferences.getInstance() " + ProgressionPreferences.PREFERENCES_NODE);
 
-		this.setPreferenceStore(new TXMPreferenceStore(ProgressionPreferences.getInstance().getPreferencesNode()));
+		this.setPreferenceStore(new TXMPreferenceStore(ProgressionPreferences.getInstance().getPreferencesNodeQualifier()));
 		
 		//FIXME: description
 		//setDescription("Progression");
Index: tmp/org.txm.partition.core/src/org/txm/partition/core/preferences/PartitionDimensionsPreferences.java
===================================================================
--- tmp/org.txm.partition.core/src/org/txm/partition/core/preferences/PartitionDimensionsPreferences.java	(revision 1025)
+++ tmp/org.txm.partition.core/src/org/txm/partition/core/preferences/PartitionDimensionsPreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.partition.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
 import org.txm.core.preferences.TXMPreferences;
@@ -14,17 +12,28 @@
  */
 public class PartitionDimensionsPreferences extends TXMPreferences {
 
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(PartitionDimensionsPreferences.class).getSymbolicName();
 	
-	public static final String PREFERENCES_PREFIX = "partition_"; //$NON-NLS-1$
 	
-	public static final String CHART_DIMENSIONS_DISPLAY_PARTS_COUNT_IN_TITLE = PREFERENCES_PREFIX + "chart_dimensions_display_parts_count_in_title"; //$NON-NLS-1$
-	public static final String CHART_DIMENSIONS_SORT_BY_SIZE = PREFERENCES_PREFIX + "chart_dimensions_sort_by_parts_size"; //$NON-NLS-1$
+	public static final String CHART_DIMENSIONS_DISPLAY_PARTS_COUNT_IN_TITLE = "chart_dimensions_display_parts_count_in_title"; //$NON-NLS-1$
+	public static final String CHART_DIMENSIONS_SORT_BY_SIZE = "chart_dimensions_sort_by_parts_size"; //$NON-NLS-1$
 	
+	
+	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(PartitionDimensionsPreferences.class)) {
+			new PartitionDimensionsPreferences();
+		}
+		return TXMPreferences.instances.get(PartitionDimensionsPreferences.class);
+	}
+
+	
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		preferences.putBoolean(CHART_DIMENSIONS_DISPLAY_PARTS_COUNT_IN_TITLE, true);
 		preferences.putBoolean(CHART_DIMENSIONS_SORT_BY_SIZE, false);
 		
@@ -32,7 +41,7 @@
 		ChartsEnginePreferences.initializeChartsEngineSharedPreferences(preferences);
 		
 		// disable unavailable functionality
-		TXMPreferences.setEmpty(PREFERENCES_NODE, ChartsEnginePreferences.SHOW_LEGEND);
+		TXMPreferences.setEmpty(this.getPreferencesNodeQualifier(), ChartsEnginePreferences.SHOW_LEGEND);
 		
 	}
 	
Index: tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/preferences/ConcordancePreferencePage.java
===================================================================
--- tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/preferences/ConcordancePreferencePage.java	(revision 1025)
+++ tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/preferences/ConcordancePreferencePage.java	(revision 1026)
@@ -59,7 +59,7 @@
 
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(ConcordancePreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(ConcordancePreferences.getInstance().getPreferencesNodeQualifier()));
 		this.setTitle(ConcordanceUIMessages.ConcordancerPreferencePage_3);
 		this.setImageDescriptor(ConcordanceAdapterFactory.ICON);
 	}
Index: tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java
===================================================================
--- tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java	(revision 1025)
+++ tmp/org.txm.concordance.rcp/src/org/txm/concordance/rcp/editors/ConcordanceEditor.java	(revision 1026)
@@ -285,7 +285,7 @@
 		this.standardComparators = new ArrayList<LineComparator>();
 		this.userDefinedComparators = new ArrayList<LineComparator>();
 		this.setStandardComparators();
-		concordance.setNLinePerPage(TXMPreferences.getInt(ConcordancePreferences.N_LINES_PER_PAGE, ConcordancePreferences.PREFERENCES_NODE));
+		concordance.setNLinePerPage(ConcordancePreferences.getInstance().getInt(ConcordancePreferences.N_LINES_PER_PAGE));
 	}
 
 
Index: tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/ChartsEnginesManager.java
===================================================================
--- tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/ChartsEnginesManager.java	(revision 1025)
+++ tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/ChartsEnginesManager.java	(revision 1026)
@@ -38,7 +38,7 @@
 		
 		//ChartsEngine.setCurrrentChartsEngine(this.getEngine(TXMPreferences.getString(ChartsEnginePreferences.CURRENT_NAME, ChartsEnginePreferences.PREFERENCES_NODE)));
 		
-		this.setCurrentEngine(TXMPreferences.getString(ChartsEnginePreferences.CURRENT_NAME, ChartsEnginePreferences.PREFERENCES_NODE));
+		this.setCurrentEngine(ChartsEnginePreferences.getInstance().getString(ChartsEnginePreferences.CURRENT_NAME));
 
 
 		
Index: tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/ChartsEngine.java
===================================================================
--- tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/ChartsEngine.java	(revision 1025)
+++ tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/ChartsEngine.java	(revision 1026)
@@ -9,7 +9,6 @@
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.RegistryFactory;
 import org.txm.Toolbox;
 import org.txm.chartsengine.core.messages.ChartsEngineCoreMessages;
 import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
@@ -74,7 +73,7 @@
 
 	
 	static	{
-		TXMPreferences.alternativeNodesQualifiers.add(ChartsEnginePreferences.PREFERENCES_NODE);
+		TXMPreferences.alternativeNodesQualifiers.add(ChartsEnginePreferences.getInstance().getPreferencesNodeQualifier());
 	}
 	
 	/**
@@ -388,7 +387,7 @@
 	 * @return
 	 */
 	public static Font createFont()	{
-		return createFont(TXMPreferences.getString(ChartsEnginePreferences.FONT, ChartsEnginePreferences.PREFERENCES_NODE));
+		return createFont(ChartsEnginePreferences.getInstance().getString(ChartsEnginePreferences.FONT));
 	}
 	
 	/**
@@ -399,7 +398,7 @@
 	public File createTmpFile(String prefix)	{
 		File file = null;
 		try {
-			File resultsDir = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "results"); //$NON-NLS-1$
+			File resultsDir = new File(Toolbox.getTxmHomePath(), "results"); //$NON-NLS-1$
 			resultsDir.mkdirs();
 			
 			// right padding to 3 characters long
Index: tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/preferences/ChartsEnginePreferences.java
===================================================================
--- tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/preferences/ChartsEnginePreferences.java	(revision 1025)
+++ tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/preferences/ChartsEnginePreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.chartsengine.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.chartsengine.core.ChartsEngine;
 import org.txm.core.preferences.TXMPreferences;
@@ -16,9 +14,6 @@
 public class ChartsEnginePreferences extends TXMPreferences {
 
 
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(ChartsEnginePreferences.class).getSymbolicName();
-
 	/**
 	 * The name of the current charts engine.
 	 */
@@ -88,9 +83,21 @@
 	public final static String DEFAULT_CHART_TYPE = "[Default]"; //$NON-NLS-1$
 	
 
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(ChartsEnginePreferences.class)) {
+			new ChartsEnginePreferences();
+		}
+		return TXMPreferences.instances.get(ChartsEnginePreferences.class);
+	}
+
+	
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		
 		preferences.put(CURRENT_NAME, "jfreechart_charts_engine"); //$NON-NLS-1$
 		preferences.put(DEFAULT_EXPORT_FORMAT, "svg"); //$NON-NLS-1$
Index: tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/Theme.java
===================================================================
--- tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/Theme.java	(revision 1025)
+++ tmp/org.txm.chartsengine.core/src/org/txm/chartsengine/core/Theme.java	(revision 1026)
@@ -7,7 +7,6 @@
 import java.util.ArrayList;
 
 import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
-import org.txm.core.preferences.TXMPreferences;
 
 /**
  * Base theme for charts.
@@ -48,7 +47,7 @@
 	 */
 	public Theme() {
 		
-		this.setMonochromeColor(TXMPreferences.getString(ChartsEnginePreferences.MONOCHROME_COLOR, ChartsEnginePreferences.PREFERENCES_NODE));
+		this.setMonochromeColor(ChartsEnginePreferences.getInstance().getString(ChartsEnginePreferences.MONOCHROME_COLOR));
 		
 		this.palette1 = new ArrayList<Color>(1);
 		this.palette5 = new ArrayList<Color>(5);
Index: tmp/org.txm.chartsengine.jfreechart.rcp/src/org/txm/chartsengine/jfreechart/rcp/preferences/JFCChartsEnginePreferencePage.java
===================================================================
--- tmp/org.txm.chartsengine.jfreechart.rcp/src/org/txm/chartsengine/jfreechart/rcp/preferences/JFCChartsEnginePreferencePage.java	(revision 1025)
+++ tmp/org.txm.chartsengine.jfreechart.rcp/src/org/txm/chartsengine/jfreechart/rcp/preferences/JFCChartsEnginePreferencePage.java	(revision 1026)
@@ -81,7 +81,7 @@
 	
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(JFCChartsEnginePreferences.PREFERENCE_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(JFCChartsEnginePreferences.getInstance().getPreferencesNodeQualifier()));
 	}
 
 	@Override
Index: tmp/org.txm.ca.core/src/org/txm/ca/core/preferences/CAPreferences.java
===================================================================
--- tmp/org.txm.ca.core/src/org/txm/ca/core/preferences/CAPreferences.java	(revision 1025)
+++ tmp/org.txm.ca.core/src/org/txm/ca/core/preferences/CAPreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.ca.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.chartsengine.core.preferences.ChartsEnginePreferences;
 import org.txm.core.preferences.TXMPreferences;
@@ -16,10 +14,6 @@
  */
 public class CAPreferences extends TXMPreferences {
 
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(CAPreferences.class).getSymbolicName();
-	
-	
 	/** The Constant QUALITYDISPLAY. */
 	public static final String QUALITY_DISPLAY_FORMAT = "quality_display_format"; //$NON-NLS-1$
 
@@ -48,10 +42,21 @@
 	public static final String SHOW_POINT_SHAPES = "chart_show_point_shapes"; //$NON-NLS-1$
 	
 	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(CAPreferences.class)) {
+			new CAPreferences();
+		}
+		return TXMPreferences.instances.get(CAPreferences.class);
+	}
 
+
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		
 		preferences.putInt(F_MIN, 10);
 		preferences.putInt(V_MAX, 200);
@@ -78,7 +83,7 @@
 		ChartsEnginePreferences.initializeChartsEngineSharedPreferences(preferences);
 		
 		// disable unavailable functionality
-		TXMPreferences.setEmpty(PREFERENCES_NODE, ChartsEnginePreferences.RENDERING_COLORS_MODE);
+		TXMPreferences.setEmpty(this.getPreferencesNodeQualifier(), ChartsEnginePreferences.RENDERING_COLORS_MODE);
 
 	}
 	
Index: tmp/org.txm.ca.core/src/org/txm/ca/core/chartsengine/jfreechart/themes/highcharts/chartcreators/JFCCAChartCreator.java
===================================================================
--- tmp/org.txm.ca.core/src/org/txm/ca/core/chartsengine/jfreechart/themes/highcharts/chartcreators/JFCCAChartCreator.java	(revision 1025)
+++ tmp/org.txm.ca.core/src/org/txm/ca/core/chartsengine/jfreechart/themes/highcharts/chartcreators/JFCCAChartCreator.java	(revision 1026)
@@ -60,8 +60,7 @@
 			
 			chart = ChartFactory.createScatterPlot(Utils.createCAFactorialMapChartTitle(ca), 
 					"", "", dataset, PlotOrientation.VERTICAL, 
-					TXMPreferences.getBoolean(ChartsEnginePreferences.SHOW_LEGEND, 
-					CAPreferences.PREFERENCES_NODE), false, false);
+					CAPreferences.getInstance().getBoolean(ChartsEnginePreferences.SHOW_LEGEND), false, false);
 
 			// Custom renderer
 			chart.getXYPlot().setRenderer(new CAItemSelectionRenderer(ca, chart));
Index: tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RWorkspace.java
===================================================================
--- tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RWorkspace.java	(revision 1025)
+++ tmp/org.txm.statsengine.r.core/src/org/txm/statsengine/r/core/RWorkspace.java	(revision 1026)
@@ -45,6 +45,7 @@
 import org.rosuda.REngine.REngineException;
 import org.rosuda.REngine.Rserve.RConnection;
 import org.rosuda.REngine.Rserve.RserveException;
+import org.txm.Toolbox;
 import org.txm.core.preferences.TBXPreferences;
 import org.txm.core.preferences.TXMPreferences;
 import org.txm.statsengine.core.StatException;
@@ -247,7 +248,7 @@
 			//TODO: this method uses the right directory ?
 			//Bundle bundle = FrameworkUtil.getBundle(RWorkspace.class);
 			//File userdir = new File(bundle.getLocation());
-			File userDir = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "R");
+			File userDir = new File(Toolbox.getTxmHomePath(), "R");
 			//System.out.println("BUNDLE LOCATION OF '" + bundle.getSymbolicName() + "': " + userDir);
 			workspace = new RWorkspace(userDir);
 		}
Index: tmp/org.txm.chartsengine.graphstream.core/src/org/txm/chartsengine/graphstream/core/preferences/GSChartsEnginePreferences.java
===================================================================
--- tmp/org.txm.chartsengine.graphstream.core/src/org/txm/chartsengine/graphstream/core/preferences/GSChartsEnginePreferences.java	(revision 1025)
+++ tmp/org.txm.chartsengine.graphstream.core/src/org/txm/chartsengine/graphstream/core/preferences/GSChartsEnginePreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.chartsengine.graphstream.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.chartsengine.graphstream.core.GSChartsEngine;
 import org.txm.core.preferences.TXMPreferences;
@@ -16,25 +14,26 @@
 public class GSChartsEnginePreferences extends TXMPreferences {
 
 
-	public static final String PREFERENCE_NODE = FrameworkUtil.getBundle(GSChartsEnginePreferences.class).getSymbolicName();
-	
-	
 	public final static String PREFERENCES_PREFIX = GSChartsEngine.NAME + "_";
 	
-	
 	public static final String OUTPUT_FORMAT = PREFERENCES_PREFIX + "output_format"; //$NON-NLS-1$
 	
-	
+
 	/**
-	 * 
+	 * Gets the instance.
+	 * @return the instance
 	 */
-	public GSChartsEnginePreferences() {
-		// TODO Auto-generated constructor stub
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(GSChartsEnginePreferences.class)) {
+			new GSChartsEnginePreferences();
+		}
+		return TXMPreferences.instances.get(GSChartsEnginePreferences.class);
 	}
 
+	
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences defaultPreferences = DefaultScope.INSTANCE.getNode(PREFERENCE_NODE);
+		Preferences defaultPreferences = this.getDefaultPreferencesNode();
 		defaultPreferences.put(OUTPUT_FORMAT, GSChartsEngine.OUTPUT_FORMAT_GRAPHSTREAM);
 	}
 	
Index: tmp/org.txm.chartsengine.graphstream.core/src/org/txm/chartsengine/graphstream/core/GSChartsEngine.java
===================================================================
--- tmp/org.txm.chartsengine.graphstream.core/src/org/txm/chartsengine/graphstream/core/GSChartsEngine.java	(revision 1025)
+++ tmp/org.txm.chartsengine.graphstream.core/src/org/txm/chartsengine/graphstream/core/GSChartsEngine.java	(revision 1026)
@@ -41,7 +41,7 @@
 	 * Creates a GraphStream charts engine with output format from the preferences.
 	 */
 	public GSChartsEngine() {
-		this(TXMPreferences.getString(GSChartsEnginePreferences.OUTPUT_FORMAT, GSChartsEnginePreferences.PREFERENCE_NODE));
+		this(GSChartsEnginePreferences.getInstance().getString(GSChartsEnginePreferences.OUTPUT_FORMAT));
 	}
 	
 
Index: tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/handlers/ComputeCooccurrences.java
===================================================================
--- tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/handlers/ComputeCooccurrences.java	(revision 1025)
+++ tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/handlers/ComputeCooccurrences.java	(revision 1026)
@@ -88,10 +88,10 @@
 				int minright = 1;
 				int maxright = 50;
 
-				int minf = TXMPreferences.getInt(TXMPreferences.F_MIN, CooccurrencePreferences.PREFERENCES_NODE);
-				int mincof = TXMPreferences.getInt(CooccurrencePreferences.MIN_COUNT, CooccurrencePreferences.PREFERENCES_NODE);
-				int minscore = (int) TXMPreferences.getDouble(CooccurrencePreferences.MIN_SCORE, CooccurrencePreferences.PREFERENCES_NODE);
-				boolean buildLexicalTableWithCooccurrents = TXMPreferences.getBoolean(CooccurrencePreferences.PARTIAL_LEXICAL_TABLE, CooccurrencePreferences.PREFERENCES_NODE);
+				int minf = CooccurrencePreferences.getInstance().getInt(TXMPreferences.F_MIN);
+				int mincof = CooccurrencePreferences.getInstance().getInt(CooccurrencePreferences.MIN_COUNT);
+				int minscore = (int) CooccurrencePreferences.getInstance().getDouble(CooccurrencePreferences.MIN_SCORE);
+				boolean buildLexicalTableWithCooccurrents = CooccurrencePreferences.getInstance().getBoolean(CooccurrencePreferences.PARTIAL_LEXICAL_TABLE);
 
 				StructuralUnit limit = null;
 				Query query = null;
Index: tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/preferences/CoocPreferencePage.java
===================================================================
--- tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/preferences/CoocPreferencePage.java	(revision 1025)
+++ tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/preferences/CoocPreferencePage.java	(revision 1026)
@@ -97,7 +97,7 @@
 
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(CooccurrencePreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(CooccurrencePreferences.getInstance().getPreferencesNodeQualifier()));
 		//setDescription("Cooccurrences");
 		this.setTitle(CooccurrenceUIMessages.CoocPreferencePage_5);
 		this.setImageDescriptor(CooccurrenceAdapterFactory.ICON);
Index: tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/editors/LineLabelProvider.java
===================================================================
--- tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/editors/LineLabelProvider.java	(revision 1025)
+++ tmp/org.txm.cooccurrence.rcp/src/org/txm/cooccurrence/rcp/editors/LineLabelProvider.java	(revision 1026)
@@ -45,7 +45,7 @@
 public class LineLabelProvider implements ITableLabelProvider {
 
 	/** The format. */
-	String format = TXMPreferences.getString(CooccurrencePreferences.SCORE_FORMAT, CooccurrencePreferences.PREFERENCES_NODE);
+	String format = CooccurrencePreferences.getInstance().getString(CooccurrencePreferences.SCORE_FORMAT);
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
Index: tmp/org.txm.chartsengine.r.core/src/org/txm/chartsengine/r/core/RChartsEngine.java
===================================================================
--- tmp/org.txm.chartsengine.r.core/src/org/txm/chartsengine/r/core/RChartsEngine.java	(revision 1025)
+++ tmp/org.txm.chartsengine.r.core/src/org/txm/chartsengine/r/core/RChartsEngine.java	(revision 1026)
@@ -63,11 +63,9 @@
 	 * Creates a R charts engine implementation.
 	 */
 	public RChartsEngine() {
-		this(TXMPreferences.getString(RChartsEnginePreferences.OUTPUT_FORMAT, RChartsEnginePreferences.PREFERENCE_NODE));
+		this(RChartsEnginePreferences.getInstance().getString(RChartsEnginePreferences.OUTPUT_FORMAT));
 	}
-	
 
-
 	
 	@Override
 	public File createChartFile(Object chart, File file)	{
Index: tmp/org.txm.chartsengine.r.core/src/org/txm/chartsengine/r/core/preferences/RChartsEnginePreferences.java
===================================================================
--- tmp/org.txm.chartsengine.r.core/src/org/txm/chartsengine/r/core/preferences/RChartsEnginePreferences.java	(revision 1025)
+++ tmp/org.txm.chartsengine.r.core/src/org/txm/chartsengine/r/core/preferences/RChartsEnginePreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.chartsengine.r.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.chartsengine.core.ChartsEngine;
 import org.txm.chartsengine.r.core.RChartsEngine;
@@ -17,22 +15,28 @@
 public class RChartsEnginePreferences extends TXMPreferences {
 
 
-	public static final String PREFERENCE_NODE = FrameworkUtil.getBundle(RChartsEnginePreferences.class).getSymbolicName();
-	
-	
 	public final static String PREFERENCES_PREFIX = RChartsEngine.NAME + "_";
 	
 	
 	public static final String OUTPUT_FORMAT = PREFERENCES_PREFIX + "output_format"; //$NON-NLS-1$
 	
 	
-	public RChartsEnginePreferences() {
-		// TODO Auto-generated constructor stub
+	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(RChartsEnginePreferences.class)) {
+			new RChartsEnginePreferences();
+		}
+		return TXMPreferences.instances.get(RChartsEnginePreferences.class);
 	}
 
+	
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences defaultPreferences = DefaultScope.INSTANCE.getNode(PREFERENCE_NODE);
+		Preferences defaultPreferences = this.getDefaultPreferencesNode();
 		defaultPreferences.put(OUTPUT_FORMAT, ChartsEngine.OUTPUT_FORMAT_SVG);
 	}
 	
Index: tmp/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/AnnotationWriter.java
===================================================================
--- tmp/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/AnnotationWriter.java	(revision 1025)
+++ tmp/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/AnnotationWriter.java	(revision 1026)
@@ -90,7 +90,7 @@
 		List<String> textsIds = corpus.getTextsID();
 		System.out.println("Exporting annotations of "+StringUtils.join(textsIds, ", ")+".");
 
-		File resultDirectory = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "results/"+corpus.getName()+"_annotations");
+		File resultDirectory = new File(Toolbox.getTxmHomePath(), "results/"+corpus.getName()+"_annotations");
 		DeleteDir.deleteDirectory(resultDirectory);
 		resultDirectory.mkdirs();
 		if (!(resultDirectory.exists() && resultDirectory.canWrite())) {
Index: tmp/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/preferences/AnnotationPreferences.java
===================================================================
--- tmp/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/preferences/AnnotationPreferences.java	(revision 1025)
+++ tmp/org.txm.annotation.kr.core/src/org/txm/annotation/kr/core/preferences/AnnotationPreferences.java	(revision 1026)
@@ -1,8 +1,6 @@
 package org.txm.annotation.kr.core.preferences;
 
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TXMPreferences;
 
@@ -15,19 +13,24 @@
 public class AnnotationPreferences extends TXMPreferences {
 
 
-	// auto populate the preference node qualifier from the current bundle id
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(AnnotationPreferences.class).getSymbolicName();
-	
 	public static final String ANNOTATION_MODE = "annotation_mode";
 	
-	public AnnotationPreferences() {
-		// TODO Auto-generated constructor stub
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(AnnotationPreferences.class)) {
+			new AnnotationPreferences();
+		}
+		return TXMPreferences.instances.get(AnnotationPreferences.class);
 	}
 
+	
 	@Override
 	public void initializeDefaultPreferences() {
 	
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		preferences.put(ANNOTATION_MODE, "simple");
 	}
 }
Index: tmp/org.txm.textsbalance.rcp/src/org/txm/textsbalance/rcp/preferences/TextsBalancePreferencePage.java
===================================================================
--- tmp/org.txm.textsbalance.rcp/src/org/txm/textsbalance/rcp/preferences/TextsBalancePreferencePage.java	(revision 1025)
+++ tmp/org.txm.textsbalance.rcp/src/org/txm/textsbalance/rcp/preferences/TextsBalancePreferencePage.java	(revision 1026)
@@ -87,7 +87,7 @@
 	 */
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(TextsBalancePreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(TextsBalancePreferences.getInstance().getPreferencesNodeQualifier()));
 		this.setDescription("Texts balance charts.");
 		this.setImageDescriptor(TextsBalanceAdapterFactory.ICON);
 	}
Index: tmp/org.txm.progression.core/src/org/txm/progression/core/preferences/ProgressionPreferences.java
===================================================================
--- tmp/org.txm.progression.core/src/org/txm/progression/core/preferences/ProgressionPreferences.java	(revision 1025)
+++ tmp/org.txm.progression.core/src/org/txm/progression/core/preferences/ProgressionPreferences.java	(revision 1026)
@@ -15,10 +15,6 @@
 public class ProgressionPreferences extends TXMPreferences {
 
 
-	// auto populate the preference node qualifier from the current bundle id
-	//public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(ProgressionPreferences.class).getSymbolicName();
-
-
 	/** The Constant REPEAT_VALUES. */
 	public static final String REPEAT_SAME_VALUES = "repeat_same_values"; //$NON-NLS-1$
 
@@ -35,7 +31,7 @@
 	
 	/**
 	 * Gets the instance.
-	 * @return
+	 * @return the instance
 	 */
 	public static TXMPreferences getInstance()	{
 		if (!TXMPreferences.instances.containsKey(ProgressionPreferences.class)) {
Index: tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesTableLabelProvider.java
===================================================================
--- tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesTableLabelProvider.java	(revision 1025)
+++ tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/editors/SpecificitiesTableLabelProvider.java	(revision 1026)
@@ -53,7 +53,7 @@
 	public SpecificitiesTableLabelProvider() {
 		//this.partindexes = partindexes;
 		//showPValues = "true".equals(Toolbox.getParam(SpecificitiesPreferencePage.SPECIF_PVALUES)); //$NON-NLS-1$
-		this.format = TXMPreferences.getString(SpecificitiesPreferences.FORMAT, SpecificitiesPreferences.PREFERENCES_NODE);
+		this.format = SpecificitiesPreferences.getInstance().getString(SpecificitiesPreferences.FORMAT);
 		if (format == null || format.trim().length() == 0) {
 			format = "%,.1f"; //$NON-NLS-1$
 		}
Index: tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/preferences/SpecificitiesPreferencePage.java
===================================================================
--- tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/preferences/SpecificitiesPreferencePage.java	(revision 1025)
+++ tmp/org.txm.specificities.rcp/src/org/txm/specificities/rcp/preferences/SpecificitiesPreferencePage.java	(revision 1026)
@@ -90,7 +90,7 @@
 	
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(SpecificitiesPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(SpecificitiesPreferences.getInstance().getPreferencesNodeQualifier()));
 		this.setTitle(SpecificitiesUIMessages.SpecificitiesPreferencePage_2);
 		this.setImageDescriptor(SpecificitiesAdapterFactory.ICON);
 	}
Index: tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/handlers/LemmaProjection.java
===================================================================
--- tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/handlers/LemmaProjection.java	(revision 1025)
+++ tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/handlers/LemmaProjection.java	(revision 1026)
@@ -220,7 +220,7 @@
 					FileCopy.copyFiles(txmDirectory, previousXMLTXMDirectory);
 
 					// work
-					File noMatchsFile = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "results/nomatch.txt");
+					File noMatchsFile = new File(Toolbox.getTxmHomePath(), "results/nomatch.txt");
 					HashSet<String> noMatchsSet = new HashSet<String>();
 					ConsoleProgressBar cpb = new ConsoleProgressBar(files.length);
 					for (File xmlFile : files) {
Index: tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/handlers/RemoveProperties.java
===================================================================
--- tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/handlers/RemoveProperties.java	(revision 1025)
+++ tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/handlers/RemoveProperties.java	(revision 1026)
@@ -108,7 +108,7 @@
 					FileCopy.copyFiles(txmDirectory, previousXMLTXMDirectory);
 
 					// work
-					File noMatchsFile = new File(TXMPreferences.getString(TBXPreferences.USER_TXM_HOME, TBXPreferences.PREFERENCES_NODE), "results/nomatch.txt");
+					File noMatchsFile = new File(Toolbox.getTxmHomePath(), "results/nomatch.txt");
 					HashSet<String> noMatchsSet = new HashSet<String>();
 					ConsoleProgressBar cpb = new ConsoleProgressBar(files.length);
 					for (File xmlFile : files) {
Index: tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/handlers/Train.java
===================================================================
--- tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/handlers/Train.java	(revision 1025)
+++ tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/handlers/Train.java	(revision 1026)
@@ -343,7 +343,7 @@
 					// Call treetagger-train
 					if (ttSrcFile.exists() && lexique2.exists() && openclassfile.exists()) {
 						System.out.println("Running ");
-						String treetaggerBinDirectory = new File(TXMPreferences.getString(TreeTaggerPreferences.INSTALL_PATH, TBXPreferences.PREFERENCES_NODE), "bin").getAbsolutePath();
+						String treetaggerBinDirectory = new File(TreeTaggerPreferences.getInstance().getString(TreeTaggerPreferences.INSTALL_PATH), "bin").getAbsolutePath();
 						if (!treetaggerBinDirectory.endsWith("/")) treetaggerBinDirectory += "/";
 
 						TreeTagger tt = new TreeTagger(treetaggerBinDirectory, options);
Index: tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/preferences/TreeTaggerPreferencePage.java
===================================================================
--- tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/preferences/TreeTaggerPreferencePage.java	(revision 1025)
+++ tmp/org.txm.treetagger.rcp/src/org/txm/treetagger/rcp/preferences/TreeTaggerPreferencePage.java	(revision 1026)
@@ -57,7 +57,7 @@
 	
 	@Override
 	public void init(IWorkbench workbench) {
-		this.setPreferenceStore(new TXMPreferenceStore(TreeTaggerPreferences.PREFERENCES_NODE));
+		this.setPreferenceStore(new TXMPreferenceStore(TreeTaggerPreferences.getInstance().getPreferencesNodeQualifier()));
 	}
 
 }
Index: tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java
===================================================================
--- tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java	(revision 1025)
+++ tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/editors/EditionPanel.java	(revision 1026)
@@ -232,7 +232,7 @@
 					+"\n	};"
 					+"\n}"
 					+"\n} catch(e) {Element.prototype.scrollIntoViewIfNeeded = Element.prototype.scrollIntoView}";
-	protected boolean fastWordHighLight = TXMPreferences.getBoolean(SynopticEditionPreferences.FAST_HIGHLIGHT, SynopticEditionPreferences.PREFERENCES_NODE);
+	protected boolean fastWordHighLight = SynopticEditionPreferences.getInstance().getBoolean(SynopticEditionPreferences.FAST_HIGHLIGHT);
 	private ArrayList<ProgressListener> beforeHighlighListeners;
 	public ArrayList<ProgressListener> getBeforeHighlighListeners() {
 		return beforeHighlighListeners;
Index: tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/preferences/SynopticEditionPreferences.java
===================================================================
--- tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/preferences/SynopticEditionPreferences.java	(revision 1025)
+++ tmp/org.txm.edition.rcp/src/org/txm/edition/rcp/preferences/SynopticEditionPreferences.java	(revision 1026)
@@ -1,7 +1,5 @@
 package org.txm.edition.rcp.preferences;
 
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.osgi.framework.FrameworkUtil;
 import org.osgi.service.prefs.Preferences;
 import org.txm.core.preferences.TXMPreferences;
 
@@ -14,16 +12,27 @@
  */
 public class SynopticEditionPreferences extends TXMPreferences {
 
-	public static final String PREFERENCES_NODE = FrameworkUtil.getBundle(SynopticEditionPreferences.class).getSymbolicName();
 	
 	/**
 	 * 
 	 */
 	public static final String FAST_HIGHLIGHT = "fast_highlight"; //$NON-NLS-1$
 
+	
+	/**
+	 * Gets the instance.
+	 * @return the instance
+	 */
+	public static TXMPreferences getInstance()	{
+		if (!TXMPreferences.instances.containsKey(SynopticEditionPreferences.class)) {
+			new SynopticEditionPreferences();
+		}
+		return TXMPreferences.instances.get(SynopticEditionPreferences.class);
+	}
+	
 	@Override
 	public void initializeDefaultPreferences() {
-		Preferences preferences = DefaultScope.INSTANCE.getNode(PREFERENCES_NODE);
+		Preferences preferences = this.getDefaultPreferencesNode();
 		preferences.putBoolean(FAST_HIGHLIGHT, true);
 	}
 }
