[225701,246188] documentation, move non API packages to under internal
diff --git a/plugins/org.eclipse.actf.ai.audio.description/META-INF/MANIFEST.MF b/plugins/org.eclipse.actf.ai.audio.description/META-INF/MANIFEST.MF
index d8bf74f..e5626ec 100644
--- a/plugins/org.eclipse.actf.ai.audio.description/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.actf.ai.audio.description/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: Eclipse ACTF Audio Description Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.actf.ai.audio.description;singleton:=true
 Bundle-Version: 0.0.1.qualifier
-Bundle-Activator: org.eclipse.actf.ai.audio.description.DescriptionPlugin
+Bundle-Activator: org.eclipse.actf.ai.internal.audio.description.DescriptionPlugin
 Bundle-Vendor: Eclipse.org
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.ui,
diff --git a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/impl/MediaControlImpl.java b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/impl/MediaControlImpl.java
index f21ca88..ce020ba 100644
--- a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/impl/MediaControlImpl.java
+++ b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/impl/MediaControlImpl.java
@@ -13,9 +13,9 @@
 
 import java.util.HashMap;
 
-import org.eclipse.actf.ai.audio.description.DescriptionPlugin;
 import org.eclipse.actf.ai.audio.description.IMetadataProvider;
-import org.eclipse.actf.ai.audio.description.Messages;
+import org.eclipse.actf.ai.internal.audio.description.DescriptionPlugin;
+import org.eclipse.actf.ai.internal.audio.description.Messages;
 import org.eclipse.actf.ai.navigator.IMediaControl;
 
 public class MediaControlImpl implements IMediaControl {
diff --git a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/impl/MetadataManager.java b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/impl/MetadataManager.java
index ea538c8..a6f5753 100644
--- a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/impl/MetadataManager.java
+++ b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/impl/MetadataManager.java
@@ -11,11 +11,11 @@
 
 package org.eclipse.actf.ai.audio.description.impl;
 
-import org.eclipse.actf.ai.audio.description.DescriptionPlugin;
 import org.eclipse.actf.ai.audio.description.IMetadata;
 import org.eclipse.actf.ai.audio.description.IMetadataProvider;
 import org.eclipse.actf.ai.fennec.treemanager.ISoundControl;
 import org.eclipse.actf.ai.fennec.treemanager.IVideoControl;
+import org.eclipse.actf.ai.internal.audio.description.DescriptionPlugin;
 import org.eclipse.actf.ai.navigator.IMediaControl.IHandle;
 
 public class MetadataManager {
diff --git a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/preferences/ADPreferenceInitializer.java b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/preferences/ADPreferenceInitializer.java
index 05c3e8d..fe891cd 100644
--- a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/preferences/ADPreferenceInitializer.java
+++ b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/preferences/ADPreferenceInitializer.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.actf.ai.audio.description.preferences;
 
-import org.eclipse.actf.ai.audio.description.DescriptionPlugin;
+import org.eclipse.actf.ai.internal.audio.description.DescriptionPlugin;
 import org.eclipse.actf.ai.tts.TTSRegistry;
 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
 import org.eclipse.jface.preference.IPreferenceStore;
diff --git a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/preferences/ADPreferencePage.java b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/preferences/ADPreferencePage.java
index 7f28510..94b5987 100644
--- a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/preferences/ADPreferencePage.java
+++ b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/preferences/ADPreferencePage.java
@@ -11,8 +11,8 @@
 
 package org.eclipse.actf.ai.audio.description.preferences;
 
-import org.eclipse.actf.ai.audio.description.DescriptionPlugin;
-import org.eclipse.actf.ai.audio.description.Messages;
+import org.eclipse.actf.ai.internal.audio.description.DescriptionPlugin;
+import org.eclipse.actf.ai.internal.audio.description.Messages;
 import org.eclipse.actf.ai.tts.TTSRegistry;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
 import org.eclipse.jface.preference.RadioGroupFieldEditor;
diff --git a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/views/DescriptionView.java b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/views/DescriptionView.java
index 06c1b04..9055acd 100644
--- a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/views/DescriptionView.java
+++ b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/views/DescriptionView.java
@@ -11,9 +11,9 @@
 
 package org.eclipse.actf.ai.audio.description.views;
 
-import org.eclipse.actf.ai.audio.description.DescriptionPlugin;
-import org.eclipse.actf.ai.audio.description.Messages;
 import org.eclipse.actf.ai.audio.description.impl.MetadataContentProvider;
+import org.eclipse.actf.ai.internal.audio.description.DescriptionPlugin;
+import org.eclipse.actf.ai.internal.audio.description.Messages;
 import org.eclipse.jface.viewers.TableViewer;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
diff --git a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/views/VideoStatusViewer.java b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/views/VideoStatusViewer.java
index 3f98f47..bf3b71f 100644
--- a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/views/VideoStatusViewer.java
+++ b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/views/VideoStatusViewer.java
@@ -11,9 +11,9 @@
 
 package org.eclipse.actf.ai.audio.description.views;
 
-import org.eclipse.actf.ai.audio.description.DescriptionPlugin;
-import org.eclipse.actf.ai.audio.description.Messages;
 import org.eclipse.actf.ai.audio.description.util.TimeFormatUtil;
+import org.eclipse.actf.ai.internal.audio.description.DescriptionPlugin;
+import org.eclipse.actf.ai.internal.audio.description.Messages;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
diff --git a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/DescriptionPlugin.java b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/internal/audio/description/DescriptionPlugin.java
similarity index 95%
rename from plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/DescriptionPlugin.java
rename to plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/internal/audio/description/DescriptionPlugin.java
index a312b5e..937d4c2 100644
--- a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/DescriptionPlugin.java
+++ b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/internal/audio/description/DescriptionPlugin.java
@@ -8,12 +8,13 @@
  * Contributors:
  *    Daisuke SATO - initial API and implementation
  *******************************************************************************/
-package org.eclipse.actf.ai.audio.description;
+package org.eclipse.actf.ai.internal.audio.description;
 
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.Locale;
 
+import org.eclipse.actf.ai.audio.description.IMetadataProvider;
 import org.eclipse.actf.ai.audio.description.impl.MetadataManager;
 import org.eclipse.actf.ai.audio.description.impl.MetadataProviderImpl;
 import org.eclipse.actf.ai.audio.description.views.DescriptionView;
@@ -25,7 +26,7 @@
 import org.eclipse.actf.ai.xmlstore.IXMLSelector;
 import org.eclipse.actf.ai.xmlstore.IXMLStore;
 import org.eclipse.actf.ai.xmlstore.IXMLStoreService;
-import org.eclipse.actf.ai.xmlstore.XMLStorePlugin;
+import org.eclipse.actf.ai.xmlstore.XMLStoreServiceUtil;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
@@ -80,11 +81,11 @@
 	 * @param url
 	 *            The URL string which determines audio description files in the
 	 *            XMLStore
-	 * @see org.eclipse.actf.ai.xmlstore.XMLStorePlugin#getXMLStoreService
+	 * @see org.eclipse.actf.ai.xmlstore.XMLStoreServiceUtil#getXMLStoreService
 	 * @return metadata information
 	 */
 	public IMetadataProvider getMetadata(String url) {
-		IXMLStoreService service = XMLStorePlugin.getDefault()
+		IXMLStoreService service = XMLStoreServiceUtil
 				.getXMLStoreService();
 		IXMLStore store = service.getRootStore();
 		IXMLSelector selector1 = service.getSelectorWithDocElem("puits",
diff --git a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/Messages.java b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/internal/audio/description/Messages.java
similarity index 90%
rename from plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/Messages.java
rename to plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/internal/audio/description/Messages.java
index 433ff0a..b87f690 100644
--- a/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/audio/description/Messages.java
+++ b/plugins/org.eclipse.actf.ai.audio.description/src/org/eclipse/actf/ai/internal/audio/description/Messages.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and Others
+ * Copyright (c) 2007, 2008 IBM Corporation and Others
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -9,7 +9,7 @@
  *    Takashi ITOH - initial API and implementation
  *******************************************************************************/
 
-package org.eclipse.actf.ai.audio.description;
+package org.eclipse.actf.ai.internal.audio.description;
 
 import java.util.MissingResourceException;
 import java.util.ResourceBundle;
diff --git a/plugins/org.eclipse.actf.ai.audio.io/META-INF/MANIFEST.MF b/plugins/org.eclipse.actf.ai.audio.io/META-INF/MANIFEST.MF
index 0131f47..2b2a3ec 100644
--- a/plugins/org.eclipse.actf.ai.audio.io/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.actf.ai.audio.io/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: Eclipse ACTF Audio IO Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.actf.ai.audio.io
 Bundle-Version: 0.0.1.qualifier
-Bundle-Activator: org.eclipse.actf.ai.audio.io.Activator
+Bundle-Activator: org.eclipse.actf.ai.audio.io.impl.Activator
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime
diff --git a/plugins/org.eclipse.actf.ai.audio.io/src/org/eclipse/actf/ai/audio/io/Activator.java b/plugins/org.eclipse.actf.ai.audio.io/src/org/eclipse/actf/ai/audio/io/impl/Activator.java
similarity index 97%
rename from plugins/org.eclipse.actf.ai.audio.io/src/org/eclipse/actf/ai/audio/io/Activator.java
rename to plugins/org.eclipse.actf.ai.audio.io/src/org/eclipse/actf/ai/audio/io/impl/Activator.java
index 15bd634..8afc252 100644
--- a/plugins/org.eclipse.actf.ai.audio.io/src/org/eclipse/actf/ai/audio/io/Activator.java
+++ b/plugins/org.eclipse.actf.ai.audio.io/src/org/eclipse/actf/ai/audio/io/impl/Activator.java
@@ -8,7 +8,7 @@
  * Contributors:
  *    Daisuke SATO - initial API and implementation
  *******************************************************************************/
-package org.eclipse.actf.ai.audio.io;
+package org.eclipse.actf.ai.audio.io.impl;
 
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.BundleContext;
diff --git a/plugins/org.eclipse.actf.ai.fennec/META-INF/MANIFEST.MF b/plugins/org.eclipse.actf.ai.fennec/META-INF/MANIFEST.MF
index 5243470..565f1fe 100644
--- a/plugins/org.eclipse.actf.ai.fennec/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.actf.ai.fennec/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: Eclipse ACTF Fennec Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.actf.ai.fennec
 Bundle-Version: 0.0.1.qualifier
-Bundle-Activator: org.eclipse.actf.ai.fennec.FennecPlugin
+Bundle-Activator: org.eclipse.actf.ai.internal.fennec.FennecPlugin
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.actf.util.vocab,
diff --git a/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/FennecMediatorFactory.java b/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/FennecMediatorFactory.java
new file mode 100644
index 0000000..1bf84ef
--- /dev/null
+++ b/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/FennecMediatorFactory.java
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Kentarou FUKUDA - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.actf.ai.fennec;
+
+import org.eclipse.actf.ai.fennec.mediator.FennecMediatorImpl;
+import org.eclipse.actf.model.ui.editor.browser.IWebBrowserACTF;
+
+/**
+ * Factory to create a instance of IFennecMediator
+ */
+public class FennecMediatorFactory {
+
+	/**
+	 * This is the factory method to create a instance of IFennecMediator
+	 * 
+	 * @param webBrowser
+	 *            An instance of {@link IWebBrowserACTF} to mediate.
+	 * @return New instance of IFennecMediator.
+	 */
+	public static IFennecMediator newFennecMediator(IWebBrowserACTF webBrowser) {
+		return new FennecMediatorImpl(webBrowser);
+	}
+
+}
diff --git a/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/FennecPlugin.java b/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/FennecPlugin.java
deleted file mode 100644
index 53ced46..0000000
--- a/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/FennecPlugin.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and Others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Hisashi MIYASHITA - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.actf.ai.fennec;
-
-import org.eclipse.actf.ai.fennec.mediator.FennecMediatorImpl;
-import org.eclipse.actf.model.ui.editor.browser.IWebBrowserACTF;
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class FennecPlugin extends Plugin {
-
-	// The shared instance.
-	private static FennecPlugin plugin;
-
-	/**
-	 * The constructor.
-	 */
-	public FennecPlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	@Override
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	@Override
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static FennecPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * This is the factory method to create a instance of IFennecMediator
-	 * 
-	 * @param webBrowser
-	 *            An instance of {@link IWebBrowserACTF} to mediate.
-	 * @return New instance of IFennecMediator.
-	 */
-	public IFennecMediator newFennecMediator(IWebBrowserACTF webBrowser) {
-		return new FennecMediatorImpl(webBrowser);
-	}
-
-}
diff --git a/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/impl/FennecEntryImpl.java b/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/impl/FennecEntryImpl.java
index 42df0e1..83c4183 100644
--- a/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/impl/FennecEntryImpl.java
+++ b/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/impl/FennecEntryImpl.java
@@ -15,7 +15,7 @@
 
 import org.eclipse.actf.ai.fennec.IFennecEntry;
 import org.eclipse.actf.ai.xmlstore.IXMLInfo;
-import org.eclipse.actf.ai.xmlstore.XMLStorePlugin;
+import org.eclipse.actf.ai.xmlstore.XMLStoreServiceUtil;
 
 
 
@@ -40,6 +40,6 @@
     }
 
     public boolean export(File dest) {
-        return XMLStorePlugin.getDefault().getXMLStoreService().exportMetadata(info, dest);
+        return XMLStoreServiceUtil.getXMLStoreService().exportMetadata(info, dest);
     }
 }
diff --git a/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/mediator/FennecMediatorImpl.java b/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/mediator/FennecMediatorImpl.java
index 6d75fe2..5a07264 100644
--- a/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/mediator/FennecMediatorImpl.java
+++ b/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/fennec/mediator/FennecMediatorImpl.java
@@ -26,7 +26,7 @@
 import org.eclipse.actf.ai.xmlstore.IXMLSelector;
 import org.eclipse.actf.ai.xmlstore.IXMLStore;
 import org.eclipse.actf.ai.xmlstore.IXMLStoreService;
-import org.eclipse.actf.ai.xmlstore.XMLStorePlugin;
+import org.eclipse.actf.ai.xmlstore.XMLStoreServiceUtil;
 import org.eclipse.actf.model.dom.dombycom.IDocumentEx;
 import org.eclipse.actf.model.ui.editor.browser.IWebBrowserACTF;
 
@@ -53,7 +53,7 @@
     }
 
     private IXMLStore getFennecStore(String url) {
-        IXMLStoreService ss = XMLStorePlugin.getDefault().getXMLStoreService();
+        IXMLStoreService ss = XMLStoreServiceUtil.getXMLStoreService();
         IXMLSelector selector = ss.getSelectorWithDocElem(FennecDOMReader.Fennec_DOCUMENT_ELEMENT_NAME,
                                                           FennecDOMReader.Fennec_NAMESPACE_URI);
         IXMLStore store = ss.getRootStore();
diff --git a/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/QueryPlugin.java b/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/internal/fennec/FennecPlugin.java
similarity index 81%
copy from plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/QueryPlugin.java
copy to plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/internal/fennec/FennecPlugin.java
index cb594c0..1dc866a 100644
--- a/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/QueryPlugin.java
+++ b/plugins/org.eclipse.actf.ai.fennec/src/org/eclipse/actf/ai/internal/fennec/FennecPlugin.java
@@ -9,23 +9,23 @@
  *    Hisashi MIYASHITA - initial API and implementation
  *******************************************************************************/
 
-package org.eclipse.actf.ai.query;
+package org.eclipse.actf.ai.internal.fennec;
 
 import org.eclipse.core.runtime.Plugin;
 import org.osgi.framework.BundleContext;
 
 /**
- * The main plugin class to be used in the desktop.
+ * The activator class controls the plug-in life cycle
  */
-public class QueryPlugin extends Plugin {
+public class FennecPlugin extends Plugin {
 
 	// The shared instance.
-	private static QueryPlugin plugin;
+	private static FennecPlugin plugin;
 
 	/**
 	 * The constructor.
 	 */
-	public QueryPlugin() {
+	public FennecPlugin() {
 		plugin = this;
 	}
 
@@ -49,7 +49,7 @@
 	/**
 	 * Returns the shared instance.
 	 */
-	public static QueryPlugin getDefault() {
+	public static FennecPlugin getDefault() {
 		return plugin;
 	}
 
diff --git a/plugins/org.eclipse.actf.ai.key.keyui/src/org/eclipse/actf/ai/key/keyui/impl/KeyUIImpl.java b/plugins/org.eclipse.actf.ai.key.keyui/src/org/eclipse/actf/ai/key/keyui/impl/KeyUIImpl.java
index cb8995a..336a543 100644
--- a/plugins/org.eclipse.actf.ai.key.keyui/src/org/eclipse/actf/ai/key/keyui/impl/KeyUIImpl.java
+++ b/plugins/org.eclipse.actf.ai.key.keyui/src/org/eclipse/actf/ai/key/keyui/impl/KeyUIImpl.java
@@ -23,13 +23,13 @@
 import org.eclipse.actf.ai.navigator.IBrowserControl;
 import org.eclipse.actf.ai.navigator.IManipulator;
 import org.eclipse.actf.ai.navigator.INavigatorUI;
-import org.eclipse.actf.ai.navigator.NavigatorPlugin;
+import org.eclipse.actf.ai.navigator.ui.NavigatorUIUtil;
 import org.eclipse.actf.ai.xmlstore.IXMLInfo;
 import org.eclipse.actf.ai.xmlstore.IXMLSelector;
 import org.eclipse.actf.ai.xmlstore.IXMLStore;
 import org.eclipse.actf.ai.xmlstore.IXMLStoreService;
 import org.eclipse.actf.ai.xmlstore.XMLStoreException;
-import org.eclipse.actf.ai.xmlstore.XMLStorePlugin;
+import org.eclipse.actf.ai.xmlstore.XMLStoreServiceUtil;
 import org.eclipse.actf.util.win32.comclutch.ComPlugin;
 import org.eclipse.actf.util.win32.keyhook.IKeyHook;
 import org.eclipse.actf.util.win32.keyhook.IKeyHookListener;
@@ -89,7 +89,7 @@
         keyHook = ComPlugin.getDefault().newKeyHook(this);
         sendEvent = ComPlugin.getDefault().newSendEvent();
 
-        IXMLStoreService xmlStoreService = XMLStorePlugin.getDefault().getXMLStoreService();
+        IXMLStoreService xmlStoreService = XMLStoreServiceUtil.getXMLStoreService();
         IXMLSelector selector = xmlStoreService.getSelectorWithDocElem("UserPreferences", PREFERENCES_NS);
         IXMLStore rootStore = xmlStoreService.getRootStore();
         IXMLStore specifiedStroe = rootStore.specify(selector);
@@ -198,7 +198,7 @@
             return;
         String name = command.getLocalName();
 
-        IMenuManager menu = NavigatorPlugin.menuManager;
+        IMenuManager menu = NavigatorUIUtil.menuManager;
         IMenuManager menu2 = menu.findMenuUsingPath(menuName);
 
         if ("separator".equals(name)) {
diff --git a/plugins/org.eclipse.actf.ai.navigator/META-INF/MANIFEST.MF b/plugins/org.eclipse.actf.ai.navigator/META-INF/MANIFEST.MF
index 45650a2..39b18d3 100644
--- a/plugins/org.eclipse.actf.ai.navigator/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.actf.ai.navigator/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: Eclipse ACTF Navigator Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.actf.ai.navigator;singleton:=true
 Bundle-Version: 0.0.1.qualifier
-Bundle-Activator: org.eclipse.actf.ai.navigator.NavigatorPlugin
+Bundle-Activator: org.eclipse.actf.ai.internal.navigator.NavigatorPlugin
 Bundle-Vendor: Eclipse.org
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.core.runtime,
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/Messages.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/internal/navigator/Messages.java
similarity index 96%
rename from plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/Messages.java
rename to plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/internal/navigator/Messages.java
index 610be3b..a964d7c 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/Messages.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/internal/navigator/Messages.java
@@ -9,7 +9,7 @@
  *    Daisuke SATO - initial API and implementation
  *******************************************************************************/
 
-package org.eclipse.actf.ai.navigator;
+package org.eclipse.actf.ai.internal.navigator;
 
 import java.util.MissingResourceException;
 import java.util.ResourceBundle;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/internal/navigator/NavigatorPlugin.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/internal/navigator/NavigatorPlugin.java
new file mode 100644
index 0000000..3e4a660
--- /dev/null
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/internal/navigator/NavigatorPlugin.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2008 IBM Corporation and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Hisashi MIYASHITA - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.actf.ai.internal.navigator;
+
+import org.eclipse.actf.ai.navigator.extension.MetadataCacheCleanerExtension;
+import org.eclipse.actf.ai.navigator.views.NavigatorTreeView;
+import org.eclipse.actf.ai.tts.AbstractUIPluginForTTS;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The main plugin class to be used in the desktop.
+ */
+public class NavigatorPlugin extends AbstractUIPluginForTTS {
+
+	public static final String ID = "org.eclipse.actf.ai.navigator";
+	// The shared instance.
+	private static NavigatorPlugin plugin;
+
+	/**
+	 * The constructor.
+	 */
+	public NavigatorPlugin() {
+		plugin = this;
+	}
+
+	/**
+	 * This method is called upon plug-in activation
+	 */
+	@Override
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+	}
+
+	/**
+	 * This method is called when the plug-in is stopped
+	 */
+	@Override
+	public void stop(BundleContext context) throws Exception {
+		super.stop(context);
+		plugin = null;
+	}
+
+	/**
+	 * Returns the shared instance.
+	 */
+	public static NavigatorPlugin getDefault() {
+		return plugin;
+	}
+
+	private NavigatorTreeView navigatorTreeView;
+
+	/**
+	 * To share the instance of the Navigator Tree View in this plug-in.
+	 * 
+	 * @param navigatorTreeView
+	 *            An instance of the Navigator Tree View.
+	 */
+	public void setNavigatorTreeView(NavigatorTreeView navigatorTreeView) {
+		this.navigatorTreeView = navigatorTreeView;
+	}
+
+	/**
+	 * @return The shared instance of the Navigator Tree View.
+	 */
+	public NavigatorTreeView getNavigatorTreeView() {
+		return navigatorTreeView;
+	}
+
+	/**
+	 * Clear the memory cache of the metadata.
+	 */
+	public void clearMetadataCache() {
+		MetadataCacheCleanerExtension.clearCache();
+	}
+}
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/IManipulator.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/IManipulator.java
index 9ac0f62..44f195d 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/IManipulator.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/IManipulator.java
@@ -11,6 +11,8 @@
 
 package org.eclipse.actf.ai.navigator;
 
+import org.eclipse.actf.ai.internal.navigator.Messages;
+
 
 /**
  * IManipulator interface defines the methods to be implemented by the "manipulator"
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/INavigatorUI.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/INavigatorUI.java
index a26dadf..d44597b 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/INavigatorUI.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/INavigatorUI.java
@@ -112,16 +112,6 @@
     void treeBottom();
 
     /**
-     * @deprecated
-     * @see #traverseUp()
-     */
-    void traverseNodeUp();
-    /**
-     * @deprecated
-     * @see #traverseDown()
-     */
-    void traverseNodeDown();
-    /**
      * Move the current position to the next node which can be read.
      * The traverse is executed in depth first strategy.
      */
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/NavigatorPlugin.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/NavigatorPlugin.java
deleted file mode 100644
index 5a40afc..0000000
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/NavigatorPlugin.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and Others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    Hisashi MIYASHITA - initial API and implementation
- *******************************************************************************/
-package org.eclipse.actf.ai.navigator;
-
-import org.eclipse.actf.ai.navigator.extension.MetadataCacheCleanerExtension;
-import org.eclipse.actf.ai.navigator.views.NavigatorTreeView;
-import org.eclipse.actf.ai.tts.AbstractUIPluginForTTS;
-import org.eclipse.jface.action.IMenuManager;
-import org.osgi.framework.BundleContext;
-
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class NavigatorPlugin extends AbstractUIPluginForTTS {
-
-    public static final String ID = "org.eclipse.actf.ai.navigator";
-    //The shared instance.
-    private static NavigatorPlugin plugin;
-    public static IMenuManager menuManager;
-        
-    /**
-     * The constructor.
-     */
-    public NavigatorPlugin() {
-        plugin = this;
-    }
-
-    /**
-     * This method is called upon plug-in activation
-     */
-    @Override
-    public void start(BundleContext context) throws Exception {
-        super.start(context);
-    }
-
-    /**
-     * This method is called when the plug-in is stopped
-     */
-    @Override
-    public void stop(BundleContext context) throws Exception {
-        super.stop(context);
-        plugin = null;
-    }
-
-    /**
-     * Returns the shared instance.
-     */
-    public static NavigatorPlugin getDefault() {
-        return plugin;
-    }
-
-    private NavigatorTreeView navigatorTreeView;
-    
-	/**
-	 * The view ID of the Navigator Tree View.
-	 */
-	public static final String NAVIGATOR_TREE_VIEW_ID = "org.eclipse.actf.ai.navigator.views.NavigatorTreeView"; //$NON-NLS-1$
-
-    /**
-     * To share the instance of the Navigator Tree View in this plug-in.
-     * @param navigatorTreeView An instance of the Navigator Tree View.
-     */
-    public void setNavigatorTreeView(NavigatorTreeView navigatorTreeView) {
-        this.navigatorTreeView = navigatorTreeView;
-    }
-    
-    /**
-     * @return The shared instance of the Navigator Tree View.
-     */
-    public NavigatorTreeView getNavigatorTreeView() {
-        return navigatorTreeView;
-    }
-    
-    /**
-     * Clear the memory cache of the metadata.
-     */
-    public void clearMetadataCache(){
-        MetadataCacheCleanerExtension.clearCache();
-    }
-}
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/ManipulatorExtension.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/ManipulatorExtension.java
index 93fad37..a345671 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/ManipulatorExtension.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/ManipulatorExtension.java
@@ -14,10 +14,10 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.eclipse.actf.ai.internal.navigator.NavigatorPlugin;
 import org.eclipse.actf.ai.navigator.IBrowserControl;
 import org.eclipse.actf.ai.navigator.IManipulator;
 import org.eclipse.actf.ai.navigator.INavigatorUI;
-import org.eclipse.actf.ai.navigator.NavigatorPlugin;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtension;
 import org.eclipse.core.runtime.Platform;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/MediaControlExtension.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/MediaControlExtension.java
index 4a9f815..be41408 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/MediaControlExtension.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/MediaControlExtension.java
@@ -14,8 +14,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.eclipse.actf.ai.internal.navigator.NavigatorPlugin;
 import org.eclipse.actf.ai.navigator.IMediaControl;
-import org.eclipse.actf.ai.navigator.NavigatorPlugin;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtension;
 import org.eclipse.core.runtime.Platform;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/MetadataCacheCleanerExtension.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/MetadataCacheCleanerExtension.java
index c0f35e0..8102317 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/MetadataCacheCleanerExtension.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/MetadataCacheCleanerExtension.java
@@ -14,8 +14,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.eclipse.actf.ai.internal.navigator.NavigatorPlugin;
 import org.eclipse.actf.ai.navigator.IMetadataCacheCleaner;
-import org.eclipse.actf.ai.navigator.NavigatorPlugin;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtension;
 import org.eclipse.core.runtime.Platform;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/ScreenReaderExtension.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/ScreenReaderExtension.java
index 16acadd..262119a 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/ScreenReaderExtension.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/extension/ScreenReaderExtension.java
@@ -14,8 +14,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.eclipse.actf.ai.internal.navigator.NavigatorPlugin;
 import org.eclipse.actf.ai.navigator.IScreenReaderControl;
-import org.eclipse.actf.ai.navigator.NavigatorPlugin;
 import org.eclipse.actf.model.ui.editor.browser.IWebBrowserACTF;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExtension;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/AccessKeyListDialog.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/AccessKeyListDialog.java
index f2ba059..88d30d5 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/AccessKeyListDialog.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/AccessKeyListDialog.java
@@ -12,7 +12,7 @@
 package org.eclipse.actf.ai.navigator.impl;
 
 import org.eclipse.actf.ai.fennec.treemanager.IAccessKeyList;
-import org.eclipse.actf.ai.navigator.Messages;
+import org.eclipse.actf.ai.internal.navigator.Messages;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/BrowserControlImpl.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/BrowserControlImpl.java
index 5cbc32a..7f4c73e 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/BrowserControlImpl.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/BrowserControlImpl.java
@@ -16,9 +16,9 @@
 import org.eclipse.actf.ai.navigator.IBrowserControl;
 import org.eclipse.actf.ai.navigator.IManipulator;
 import org.eclipse.actf.ai.navigator.extension.ManipulatorExtension;
-import org.eclipse.actf.ai.navigator.ui.URLOpenDialog;
+import org.eclipse.actf.ai.navigator.util.URLOpenDialog;
 import org.eclipse.actf.ai.navigator.voice.VoiceManager;
-import org.eclipse.actf.ai.xmlstore.XMLStorePlugin;
+import org.eclipse.actf.ai.xmlstore.XMLStoreServiceUtil;
 import org.eclipse.actf.model.ui.editor.browser.IWebBrowserACTF;
 import org.eclipse.actf.model.ui.editor.browser.IWebBrowserNavigationEventListener;
 import org.eclipse.actf.model.ui.editor.browser.WebBrowserNavigationEvent;
@@ -94,7 +94,7 @@
                 if (!ret)
                     return;
             }
-            if (XMLStorePlugin.getDefault().getXMLStoreService().exportAllAnnotations(dest)) {
+            if (XMLStoreServiceUtil.getXMLStoreService().exportAllAnnotations(dest)) {
                 voiceManager.speakWithFormat("Navigator.EXPORT_IS_SUCCEEDED", true, true);
             } else {
                 voiceManager.speakWithFormat("Navigator.EXPORT_IS_FAILED", true, true);
@@ -114,8 +114,8 @@
         if (path != null) {
             File src = new File(path);
 
-            boolean r = XMLStorePlugin.getDefault().getXMLStoreService().importMetadata(src);
-            XMLStorePlugin.getDefault().getXMLStoreService().getRootStore().refleshAll();
+            boolean r = XMLStoreServiceUtil.getXMLStoreService().importMetadata(src);
+            XMLStoreServiceUtil.getXMLStoreService().getRootStore().refleshAll();
             NavigatorImpl navigator = webEventListener.getFocused();
             if (navigator != null)
                 navigator.forceRestart();
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/FormInputDialog.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/FormInputDialog.java
index 55956d7..06407ec 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/FormInputDialog.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/FormInputDialog.java
@@ -11,7 +11,7 @@
 
 package org.eclipse.actf.ai.navigator.impl;
 
-import org.eclipse.actf.ai.navigator.Messages;
+import org.eclipse.actf.ai.internal.navigator.Messages;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/FormSelectDialog.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/FormSelectDialog.java
index 7790e6c..07094b6 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/FormSelectDialog.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/FormSelectDialog.java
@@ -12,7 +12,7 @@
 package org.eclipse.actf.ai.navigator.impl;
 
 import org.eclipse.actf.ai.fennec.treemanager.ITreeItem;
-import org.eclipse.actf.ai.navigator.Messages;
+import org.eclipse.actf.ai.internal.navigator.Messages;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionEvent;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/NavigatorImpl.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/NavigatorImpl.java
index 424f642..73020cc 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/NavigatorImpl.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/NavigatorImpl.java
@@ -31,10 +31,10 @@
 import org.eclipse.actf.ai.fennec.treemanager.TreeManagerInterruptedException;
 import org.eclipse.actf.ai.fennec.treemanager.ISoundControl.VolumeState;
 import org.eclipse.actf.ai.fennec.treemanager.IVideoControl.VideoState;
+import org.eclipse.actf.ai.internal.navigator.NavigatorPlugin;
 import org.eclipse.actf.ai.navigator.IManipulator;
 import org.eclipse.actf.ai.navigator.IMediaControl;
 import org.eclipse.actf.ai.navigator.INavigatorUI;
-import org.eclipse.actf.ai.navigator.NavigatorPlugin;
 import org.eclipse.actf.ai.navigator.IMediaControl.IHandle;
 import org.eclipse.actf.ai.navigator.extension.ManipulatorExtension;
 import org.eclipse.actf.ai.navigator.extension.MediaControlExtension;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/NavigatorImplEx.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/NavigatorImplEx.java
index f613636..df132d1 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/NavigatorImplEx.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/NavigatorImplEx.java
@@ -12,8 +12,8 @@
 
 import org.eclipse.actf.ai.fennec.treemanager.ITreeItem;
 import org.eclipse.actf.ai.fennec.treemanager.TreeManagerException;
+import org.eclipse.actf.ai.internal.navigator.NavigatorPlugin;
 import org.eclipse.actf.ai.navigator.IManipulator;
-import org.eclipse.actf.ai.navigator.NavigatorPlugin;
 import org.eclipse.actf.ai.navigator.preferences.UserInfoPreferenceConstants;
 import org.eclipse.actf.ai.navigator.userinfo.IMetaDataModifier;
 import org.eclipse.actf.ai.navigator.userinfo.IUserInfoGenerator;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/SearchDialog.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/SearchDialog.java
index 9c70d95..a7adbf4 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/SearchDialog.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/SearchDialog.java
@@ -11,7 +11,7 @@
 
 package org.eclipse.actf.ai.navigator.impl;
 
-import org.eclipse.actf.ai.navigator.Messages;
+import org.eclipse.actf.ai.internal.navigator.Messages;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/WebEventListener.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/WebEventListener.java
index 0c7056a..9620d08 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/WebEventListener.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/impl/WebEventListener.java
@@ -14,7 +14,7 @@
 import java.net.URLDecoder;
 import java.util.HashMap;
 
-import org.eclipse.actf.ai.fennec.FennecPlugin;
+import org.eclipse.actf.ai.fennec.FennecMediatorFactory;
 import org.eclipse.actf.ai.fennec.IFennecMediator;
 import org.eclipse.actf.ai.fennec.treemanager.ILocation;
 import org.eclipse.actf.ai.navigator.broker.RequestBroker;
@@ -31,314 +31,338 @@
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
 
-
 public class WebEventListener implements IWebBrowserACTFEventListener {
 
-    private static final String ABOUT_BLANK_URL = "about:blank";
+	private static final String ABOUT_BLANK_URL = "about:blank";
 
-    private FennecPlugin getFennecPlugin() {
-        return FennecPlugin.getDefault();
-    }
+	// --------------------------------------------------------------------------------
+	// Browser State: It keeps the state of the browser by receiving Web Browser
+	// Events. In overall, we should encapsulate the stateful information around
+	// the browser
+	// into this class.
+	// --------------------------------------------------------------------------------
+	public class BrowserState {
+		public static final int STATE_NONE = -1;
 
-    // --------------------------------------------------------------------------------
-    //  Browser State: It keeps the state of the browser by receiving Web Browser
-    //  Events.  In overall, we should encapsulate the stateful information around the browser
-    //  into this class.
-    // --------------------------------------------------------------------------------
-    public class BrowserState {
-        public static final int STATE_NONE = -1;
+		public static final int STATE_UNINIT = 0;
 
-        public static final int STATE_UNINIT = 0;
+		public static final int STATE_PROGRESS = 1;
 
-        public static final int STATE_PROGRESS = 1;
+		public static final int STATE_NAVIGATECOMPLETED = 3;
 
-        public static final int STATE_NAVIGATECOMPLETED = 3;
+		public static final int STATE_STARTED = 10;
 
-        public static final int STATE_STARTED = 10;
+		boolean shouldRecord;
+		boolean initFlag;
+		ILocation savedLocation;
+		ILocation savedLocationForMyRefresh;
 
-        boolean shouldRecord;
-        boolean initFlag;
-        ILocation savedLocation;
-        ILocation savedLocationForMyRefresh;
+		NavigatorImpl navigator;
 
-        NavigatorImpl navigator;
+		public NavigatorImpl getNavigator() {
+			return navigator;
+		}
 
-        public NavigatorImpl getNavigator() {
-            return navigator;
-        }
+		int state;
 
-        int state;
+		public int getState() {
+			return state;
+		}
 
+		void resetState() {
+			this.state = STATE_UNINIT;
+		}
 
-        public int getState() {
-            return state;
-        }
+		void setNoState() {
+			this.state = STATE_NONE;
+		}
 
-        void resetState() {
-            this.state = STATE_UNINIT;
-        }
+		void forwardState(int newst) {
+			if (this.state < newst)
+				this.state = newst;
+		}
 
-        void setNoState() {
-            this.state = STATE_NONE;
-        }
+		BrowserState(IWebBrowserACTF webBrowser) {
+			this.navigator = new NavigatorImplEx(WebEventListener.this,
+					webBrowser, 30, 1000);
+			this.state = STATE_NONE;
+		}
+	}
 
-        void forwardState(int newst) {
-            if (this.state < newst) this.state = newst;
-        }
+	private HashMap<IWebBrowserACTF, BrowserState> browserStateMap;
 
-        BrowserState(IWebBrowserACTF webBrowser) {
-            this.navigator = new NavigatorImplEx(WebEventListener.this, webBrowser, 30, 1000);
-            this.state = STATE_NONE;
-        }
-    }
+	private RequestBroker requestBroker;
 
-    private HashMap<IWebBrowserACTF, BrowserState> browserStateMap;
+	private final TripJournal tripJournal;
 
-    private RequestBroker requestBroker;
-    
-    private final TripJournal tripJournal;
+	private final BrowserControlImpl browserControl;
 
-    private final BrowserControlImpl browserControl;
+	public WebEventListener() {
+		this.browserStateMap = new HashMap<IWebBrowserACTF, BrowserState>();
+		this.tripJournal = new TripJournal();
+		this.browserControl = new BrowserControlImpl(this, this.tripJournal);
+		WebBrowserNavigationEventListnerHolder.LISTENER = this.browserControl;
+		ManipulatorExtension.setBrowserControl(this.browserControl);
 
-    public WebEventListener() {
-        this.browserStateMap = new HashMap<IWebBrowserACTF, BrowserState>();
-        this.tripJournal = new TripJournal();
-        this.browserControl = new BrowserControlImpl(this, this.tripJournal);
-        WebBrowserNavigationEventListnerHolder.LISTENER = this.browserControl;
-        ManipulatorExtension.setBrowserControl(this.browserControl);
+		requestBroker = new RequestBroker(this);
+	}
 
-        requestBroker = new RequestBroker(this);
-    }
-    
-    public synchronized BrowserState getBrowserState(IWebBrowserACTF webBrowser) {
-        BrowserState bs = browserStateMap.get(webBrowser);
-        if (bs == null) {
-            bs = new BrowserState(webBrowser);
-            browserStateMap.put(webBrowser, bs);
-        }
-        return bs;
-    }
+	public synchronized BrowserState getBrowserState(IWebBrowserACTF webBrowser) {
+		BrowserState bs = browserStateMap.get(webBrowser);
+		if (bs == null) {
+			bs = new BrowserState(webBrowser);
+			browserStateMap.put(webBrowser, bs);
+		}
+		return bs;
+	}
 
-    public void forceRestart(IWebBrowserACTF webBrowser) {
-        startNavigation(webBrowser, false);
-    }
+	public void forceRestart(IWebBrowserACTF webBrowser) {
+		startNavigation(webBrowser, false);
+	}
 
-    public NavigatorImpl getFocused() {
-        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-        IWorkbenchPage page = window.getActivePage();
-        IEditorPart editor = page.getActiveEditor();
+	public NavigatorImpl getFocused() {
+		IWorkbenchWindow window = PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow();
+		IWorkbenchPage page = window.getActivePage();
+		IEditorPart editor = page.getActiveEditor();
 
-        if (editor == null) return null;
-        IModelServiceHolder modelServiceHolder = (IModelServiceHolder) editor;
-        IWebBrowserACTF wb = (IWebBrowserACTF) modelServiceHolder.getModelService();
-        BrowserState bs = browserStateMap.get(wb);
-        if (bs == null) return null;
+		if (editor == null)
+			return null;
+		IModelServiceHolder modelServiceHolder = (IModelServiceHolder) editor;
+		IWebBrowserACTF wb = (IWebBrowserACTF) modelServiceHolder
+				.getModelService();
+		BrowserState bs = browserStateMap.get(wb);
+		if (bs == null)
+			return null;
 
-        return bs.getNavigator();
-    }
+		return bs.getNavigator();
+	}
 
-    // --------------------------------------------------------------------------------
-    //  Event Handlers
-    // --------------------------------------------------------------------------------
-    
-    private static final boolean EVENT_DEBUG = false;
-    
-    private void startNavigation(IWebBrowserACTF webBrowser) {
-        startNavigation(webBrowser, false);
-    }
+	// --------------------------------------------------------------------------------
+	// Event Handlers
+	// --------------------------------------------------------------------------------
 
-    private void startNavigation(IWebBrowserACTF webBrowser, boolean isRefresh) {
-        tripJournal.tripEnd();
-        BrowserState bs = getBrowserState(webBrowser);
-        if (bs.state >= BrowserState.STATE_STARTED)
-            return;
-        
-        if (EVENT_DEBUG) System.err.println(webBrowser.getURL() + ", isRefresh=" + isRefresh + ", " + webBrowser);
-        
-        if (bs.state == BrowserState.STATE_STARTED) {
-            MediaControlExtension.doDispose(bs.navigator.getMediaControlHandle());
-        }
-        MediaControlExtension.start(bs.navigator.getMediaControlHandle());
+	private static final boolean EVENT_DEBUG = false;
 
-        IFennecMediator mediator = getFennecPlugin().newFennecMediator(webBrowser);
-        bs.navigator.setFennecMediator(mediator);
-        bs.navigator.startNavigation(webBrowser, !isRefresh);
-        requestBroker.setNavigator(bs.navigator, webBrowser);
+	private void startNavigation(IWebBrowserACTF webBrowser) {
+		startNavigation(webBrowser, false);
+	}
 
-        bs.forwardState(BrowserState.STATE_STARTED);
-        requestBroker.newPageReady();
-    }
+	private void startNavigation(IWebBrowserACTF webBrowser, boolean isRefresh) {
+		tripJournal.tripEnd();
+		BrowserState bs = getBrowserState(webBrowser);
+		if (bs.state >= BrowserState.STATE_STARTED)
+			return;
 
-    private static final String FILE_SCHEME_SUFFIX = "file:///";
-    private String unifyURLFileScheme(String url) {
-        if (url.startsWith(FILE_SCHEME_SUFFIX)) {
-            url = url.substring(FILE_SCHEME_SUFFIX.length());
-            try {
-                url = URLDecoder.decode(url, "UTF-8");
-            } catch (UnsupportedEncodingException e) {
-                e.printStackTrace();
-            }
-            return url.replace('/', '\\');
-        }
-        return url;
-    }
+		if (EVENT_DEBUG)
+			System.err.println(webBrowser.getURL() + ", isRefresh=" + isRefresh
+					+ ", " + webBrowser);
 
-    private boolean urlEquals(String url1, String url2) {
-        if ((url1 == null) || (url2 == null)) return false;
-        return unifyURLFileScheme(url1).equals(unifyURLFileScheme(url2));
-    }
+		if (bs.state == BrowserState.STATE_STARTED) {
+			MediaControlExtension.doDispose(bs.navigator
+					.getMediaControlHandle());
+		}
+		MediaControlExtension.start(bs.navigator.getMediaControlHandle());
 
-    public void navigateComplete(IWebBrowserACTF webBrowser, String url) { 
-        if (EVENT_DEBUG) System.out.println("navigateComplete " + url + ", "
-                                            + webBrowser.getURL() + " | " + webBrowser);
-        
-        if (!urlEquals(url, webBrowser.getURL())) return;
+		IFennecMediator mediator = FennecMediatorFactory
+				.newFennecMediator(webBrowser);
+		bs.navigator.setFennecMediator(mediator);
+		bs.navigator.startNavigation(webBrowser, !isRefresh);
+		requestBroker.setNavigator(bs.navigator, webBrowser);
 
-        BrowserState bs = getBrowserState(webBrowser);
-        if ((bs.shouldRecord)
-            && (bs.state < BrowserState.STATE_NAVIGATECOMPLETED)) {
-            tripJournal.recordJournal(bs.navigator,
-                                      bs.savedLocation,
-                                      webBrowser.getURL(),
-                                      bs.initFlag);
-        }
-        bs.forwardState(BrowserState.STATE_NAVIGATECOMPLETED);
-        bs.navigator.navigateComplete();
-    }
+		bs.forwardState(BrowserState.STATE_STARTED);
+		requestBroker.newPageReady();
+	}
 
-    public void titleChange(IWebBrowserACTF webBrowser, String title) {
-        if (EVENT_DEBUG) System.out.println("titleChange " + title + ", "+ webBrowser);
+	private static final String FILE_SCHEME_SUFFIX = "file:///";
 
-        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-        IWorkbenchPage page = window.getActivePage();
+	private String unifyURLFileScheme(String url) {
+		if (url.startsWith(FILE_SCHEME_SUFFIX)) {
+			url = url.substring(FILE_SCHEME_SUFFIX.length());
+			try {
+				url = URLDecoder.decode(url, "UTF-8");
+			} catch (UnsupportedEncodingException e) {
+				e.printStackTrace();
+			}
+			return url.replace('/', '\\');
+		}
+		return url;
+	}
 
-        IEditorPart editor = page.getActiveEditor();
-        if (editor instanceof IModelServiceHolder) {
-            if (webBrowser != ((IModelServiceHolder) editor).getModelService()) {
-                return;
-            }
-        }
+	private boolean urlEquals(String url1, String url2) {
+		if ((url1 == null) || (url2 == null))
+			return false;
+		return unifyURLFileScheme(url1).equals(unifyURLFileScheme(url2));
+	}
 
-        setWindowTitle(title);
-    }
+	public void navigateComplete(IWebBrowserACTF webBrowser, String url) {
+		if (EVENT_DEBUG)
+			System.out.println("navigateComplete " + url + ", "
+					+ webBrowser.getURL() + " | " + webBrowser);
 
-    public void dispose() {
-    }
+		if (!urlEquals(url, webBrowser.getURL()))
+			return;
 
-    public void progressChange(IWebBrowserACTF webBrowser, int progress, int progressMax) {
-        if (EVENT_DEBUG) System.out.println("progressChange progress=" + progress + ", progressMax=" + progressMax + ", " + webBrowser);
-        BrowserState bs = getBrowserState(webBrowser);
-        bs.forwardState(BrowserState.STATE_PROGRESS);
-        bs.navigator.progressChange(progress, progressMax);
-    }
+		BrowserState bs = getBrowserState(webBrowser);
+		if ((bs.shouldRecord)
+				&& (bs.state < BrowserState.STATE_NAVIGATECOMPLETED)) {
+			tripJournal.recordJournal(bs.navigator, bs.savedLocation,
+					webBrowser.getURL(), bs.initFlag);
+		}
+		bs.forwardState(BrowserState.STATE_NAVIGATECOMPLETED);
+		bs.navigator.navigateComplete();
+	}
 
-    public void rootDocumentComplete(IWebBrowserACTF webBrowser) {
-        if (EVENT_DEBUG) System.out.println("myDocumentComplete " + webBrowser);
-        BrowserState bs = getBrowserState(webBrowser);
-        
-        if (!(ABOUT_BLANK_URL.equals(webBrowser.getURL()))) {
-            bs.navigator.speakTab(false);
-            startNavigation(webBrowser);
-        } else {
-            bs.setNoState();
-        }
-    }
+	public void titleChange(IWebBrowserACTF webBrowser, String title) {
+		if (EVENT_DEBUG)
+			System.out.println("titleChange " + title + ", " + webBrowser);
 
-    public void focusChange(IWebBrowserACTF webBrowser) {
-        if (EVENT_DEBUG) System.out.println("focusChange " + webBrowser);
-        BrowserState bs = getBrowserState(webBrowser);
-        ManipulatorExtension.setNavigator(bs.navigator);
-        requestBroker.setNavigator(bs.navigator, webBrowser);
-        MediaControlExtension.start(bs.navigator.getMediaControlHandle());
-        setWindowTitle();
-    }
+		IWorkbenchWindow window = PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow();
+		IWorkbenchPage page = window.getActivePage();
 
-    private void setWindowTitle(String title) {
-        String productName = Platform.getProduct().getName();
-        PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setText(title + " - " + productName);
-    }
+		IEditorPart editor = page.getActiveEditor();
+		if (editor instanceof IModelServiceHolder) {
+			if (webBrowser != ((IModelServiceHolder) editor).getModelService()) {
+				return;
+			}
+		}
 
-    private void setWindowTitle() {
-        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-        IWorkbenchPage page = window.getActivePage();
-        String title = page.getActiveEditor().getTitle();
-        setWindowTitle(title);
-    }
+		setWindowTitle(title);
+	}
 
-    public void beforeNavigate(IWebBrowserACTF webBrowser,
-                               String url,
-                               String targetFrameName,
-                               boolean isInNavigation) {
-        if (EVENT_DEBUG) System.out.println("beforeNavigate " + url + ", " + targetFrameName + ", isInNavigation=" + isInNavigation);
-        BrowserState bs = getBrowserState(webBrowser);
-        //if (isInNavigation) {
-        if (!url.startsWith("javascript")) {
-            if (!(ABOUT_BLANK_URL.equals(url))) {
-                if (bs.state == BrowserState.STATE_NONE) {
-                    bs.initFlag = true;
-                } else {
-                    bs.initFlag = false;
-                }
-                bs.shouldRecord = true;
-                bs.savedLocation = bs.navigator.getLocation();
-            } else {
-                bs.shouldRecord = false;
-            }
-            bs.resetState();
-            bs.navigator.beforeNavigation(webBrowser.getURL());
-        } else {
-            bs.shouldRecord = false;
-        }
-        ScreenReaderExtension.takeBackControl(webBrowser);
-    }
+	public void dispose() {
+	}
 
-    public void browserDisposed(IWebBrowserACTF webBrowser, String title) {
-        if (EVENT_DEBUG) System.out.println("browserDisposed " + title);
-        BrowserState bs = getBrowserState(webBrowser);
-        bs.navigator.speakCloseTab(title);
+	public void progressChange(IWebBrowserACTF webBrowser, int progress,
+			int progressMax) {
+		if (EVENT_DEBUG)
+			System.out.println("progressChange progress=" + progress
+					+ ", progressMax=" + progressMax + ", " + webBrowser);
+		BrowserState bs = getBrowserState(webBrowser);
+		bs.forwardState(BrowserState.STATE_PROGRESS);
+		bs.navigator.progressChange(progress, progressMax);
+	}
 
-        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-        IWorkbenchPage page = window.getActivePage();
-        if ((page == null) || (page.getActiveEditor() == null)) {
-            setWindowTitle("No Tab");
-        }
-    }
+	public void rootDocumentComplete(IWebBrowserACTF webBrowser) {
+		if (EVENT_DEBUG)
+			System.out.println("myDocumentComplete " + webBrowser);
+		BrowserState bs = getBrowserState(webBrowser);
 
-    public void refreshStart(IWebBrowserACTF webBrowser) {
-        if (EVENT_DEBUG) System.out.println("myRefresh " + webBrowser);
-        BrowserState bs = getBrowserState(webBrowser);
-        bs.resetState();
-        bs.savedLocationForMyRefresh = bs.navigator.getLocation();
-        bs.navigator.beforeNavigation(webBrowser.getURL());
-    }
+		if (!(ABOUT_BLANK_URL.equals(webBrowser.getURL()))) {
+			bs.navigator.speakTab(false);
+			startNavigation(webBrowser);
+		} else {
+			bs.setNoState();
+		}
+	}
 
-    public void refreshComplete(IWebBrowserACTF webBrowser) {
-        if (EVENT_DEBUG) System.out.println("Refresh Complete " + webBrowser);
-        BrowserState bs = getBrowserState(webBrowser);
-        bs.navigator.restoreLocation(bs.savedLocationForMyRefresh);
-        startNavigation(webBrowser, true);
-    }
+	public void focusChange(IWebBrowserACTF webBrowser) {
+		if (EVENT_DEBUG)
+			System.out.println("focusChange " + webBrowser);
+		BrowserState bs = getBrowserState(webBrowser);
+		ManipulatorExtension.setNavigator(bs.navigator);
+		requestBroker.setNavigator(bs.navigator, webBrowser);
+		MediaControlExtension.start(bs.navigator.getMediaControlHandle());
+		setWindowTitle();
+	}
 
-    public void navigateStop(IWebBrowserACTF webBrowser) {
-        if (EVENT_DEBUG) System.out.println("navigateStop " + webBrowser);
-    }
+	private void setWindowTitle(String title) {
+		String productName = Platform.getProduct().getName();
+		PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()
+				.setText(title + " - " + productName);
+	}
 
-    public void focusGainedOfAddressText(IWebBrowserACTF webBrowser) {
-        if (EVENT_DEBUG) System.out.println("focusGainedOfAddressText " + webBrowser);
-        BrowserState bs = getBrowserState(webBrowser);
-        bs.navigator.enterBrowserAddress();
-    }
+	private void setWindowTitle() {
+		IWorkbenchWindow window = PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow();
+		IWorkbenchPage page = window.getActivePage();
+		String title = page.getActiveEditor().getTitle();
+		setWindowTitle(title);
+	}
 
-    public void focusLostOfAddressText(IWebBrowserACTF webBrowser) {
-        if (EVENT_DEBUG) System.out.println("focusLostOfAddressText " + webBrowser);
-        BrowserState bs = getBrowserState(webBrowser);
-        bs.navigator.exitFormMode();
-    }
+	public void beforeNavigate(IWebBrowserACTF webBrowser, String url,
+			String targetFrameName, boolean isInNavigation) {
+		if (EVENT_DEBUG)
+			System.out.println("beforeNavigate " + url + ", " + targetFrameName
+					+ ", isInNavigation=" + isInNavigation);
+		BrowserState bs = getBrowserState(webBrowser);
+		// if (isInNavigation) {
+		if (!url.startsWith("javascript")) {
+			if (!(ABOUT_BLANK_URL.equals(url))) {
+				if (bs.state == BrowserState.STATE_NONE) {
+					bs.initFlag = true;
+				} else {
+					bs.initFlag = false;
+				}
+				bs.shouldRecord = true;
+				bs.savedLocation = bs.navigator.getLocation();
+			} else {
+				bs.shouldRecord = false;
+			}
+			bs.resetState();
+			bs.navigator.beforeNavigation(webBrowser.getURL());
+		} else {
+			bs.shouldRecord = false;
+		}
+		ScreenReaderExtension.takeBackControl(webBrowser);
+	}
 
-    public void newWindow(IWebBrowserACTF webBrowser) {
-        if (EVENT_DEBUG) System.out.println("newWindow " + webBrowser);
-        BrowserState bs = getBrowserState(webBrowser);
-        bs.navigator.speakOpenTab();
-    }
+	public void browserDisposed(IWebBrowserACTF webBrowser, String title) {
+		if (EVENT_DEBUG)
+			System.out.println("browserDisposed " + title);
+		BrowserState bs = getBrowserState(webBrowser);
+		bs.navigator.speakCloseTab(title);
+
+		IWorkbenchWindow window = PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow();
+		IWorkbenchPage page = window.getActivePage();
+		if ((page == null) || (page.getActiveEditor() == null)) {
+			setWindowTitle("No Tab");
+		}
+	}
+
+	public void refreshStart(IWebBrowserACTF webBrowser) {
+		if (EVENT_DEBUG)
+			System.out.println("myRefresh " + webBrowser);
+		BrowserState bs = getBrowserState(webBrowser);
+		bs.resetState();
+		bs.savedLocationForMyRefresh = bs.navigator.getLocation();
+		bs.navigator.beforeNavigation(webBrowser.getURL());
+	}
+
+	public void refreshComplete(IWebBrowserACTF webBrowser) {
+		if (EVENT_DEBUG)
+			System.out.println("Refresh Complete " + webBrowser);
+		BrowserState bs = getBrowserState(webBrowser);
+		bs.navigator.restoreLocation(bs.savedLocationForMyRefresh);
+		startNavigation(webBrowser, true);
+	}
+
+	public void navigateStop(IWebBrowserACTF webBrowser) {
+		if (EVENT_DEBUG)
+			System.out.println("navigateStop " + webBrowser);
+	}
+
+	public void focusGainedOfAddressText(IWebBrowserACTF webBrowser) {
+		if (EVENT_DEBUG)
+			System.out.println("focusGainedOfAddressText " + webBrowser);
+		BrowserState bs = getBrowserState(webBrowser);
+		bs.navigator.enterBrowserAddress();
+	}
+
+	public void focusLostOfAddressText(IWebBrowserACTF webBrowser) {
+		if (EVENT_DEBUG)
+			System.out.println("focusLostOfAddressText " + webBrowser);
+		BrowserState bs = getBrowserState(webBrowser);
+		bs.navigator.exitFormMode();
+	}
+
+	public void newWindow(IWebBrowserACTF webBrowser) {
+		if (EVENT_DEBUG)
+			System.out.println("newWindow " + webBrowser);
+		BrowserState bs = getBrowserState(webBrowser);
+		bs.navigator.speakOpenTab();
+	}
 
 }
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/preferences/UserInfoPreferenceInitializer.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/preferences/UserInfoPreferenceInitializer.java
index 09f4713..e49f1b0 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/preferences/UserInfoPreferenceInitializer.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/preferences/UserInfoPreferenceInitializer.java
@@ -10,7 +10,7 @@
  *******************************************************************************/
 package org.eclipse.actf.ai.navigator.preferences;
 
-import org.eclipse.actf.ai.navigator.NavigatorPlugin;
+import org.eclipse.actf.ai.internal.navigator.NavigatorPlugin;
 import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
 import org.eclipse.jface.preference.IPreferenceStore;
 
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/preferences/UserInfoPreferencePage.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/preferences/UserInfoPreferencePage.java
index 9e19db8..8e87cea 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/preferences/UserInfoPreferencePage.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/preferences/UserInfoPreferencePage.java
@@ -10,8 +10,8 @@
  *******************************************************************************/
 package org.eclipse.actf.ai.navigator.preferences;
 
-import org.eclipse.actf.ai.navigator.Messages;
-import org.eclipse.actf.ai.navigator.NavigatorPlugin;
+import org.eclipse.actf.ai.internal.navigator.Messages;
+import org.eclipse.actf.ai.internal.navigator.NavigatorPlugin;
 import org.eclipse.jface.preference.BooleanFieldEditor;
 import org.eclipse.jface.preference.FieldEditorPreferencePage;
 import org.eclipse.ui.IWorkbench;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/ui/NavigatorUIUtil.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/ui/NavigatorUIUtil.java
new file mode 100644
index 0000000..dfc881b
--- /dev/null
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/ui/NavigatorUIUtil.java
@@ -0,0 +1,30 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Kentarou FUKUDA - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.actf.ai.navigator.ui;
+
+import org.eclipse.jface.action.IMenuManager;
+
+/**
+ * Utility class for Navigator UIs.
+ */
+public class NavigatorUIUtil {
+
+	/**
+	 * The navigator related menus will be added to this IMenuManager.
+	 */
+	public static IMenuManager menuManager;
+
+	/**
+	 * The view ID of the Navigator Tree View.
+	 */
+	public static final String NAVIGATOR_TREE_VIEW_ID = "org.eclipse.actf.ai.navigator.views.NavigatorTreeView"; //$NON-NLS-1$
+
+}
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/userinfo/impl/AltInputDialog.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/userinfo/impl/AltInputDialog.java
index 22d9661..08a4fe8 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/userinfo/impl/AltInputDialog.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/userinfo/impl/AltInputDialog.java
@@ -11,7 +11,7 @@
 
 package org.eclipse.actf.ai.navigator.userinfo.impl;
 
-import org.eclipse.actf.ai.navigator.Messages;
+import org.eclipse.actf.ai.internal.navigator.Messages;
 import org.eclipse.jface.dialogs.Dialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/userinfo/impl/MetaDataModifier.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/userinfo/impl/MetaDataModifier.java
index 687cc11..4fa20ae 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/userinfo/impl/MetaDataModifier.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/userinfo/impl/MetaDataModifier.java
@@ -24,7 +24,7 @@
 import org.eclipse.actf.ai.xmlstore.IXMLStore;
 import org.eclipse.actf.ai.xmlstore.IXMLStoreService;
 import org.eclipse.actf.ai.xmlstore.XMLStoreException;
-import org.eclipse.actf.ai.xmlstore.XMLStorePlugin;
+import org.eclipse.actf.ai.xmlstore.XMLStoreServiceUtil;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -84,7 +84,7 @@
     }
     
     private IXMLEditableInfo getUserInfo() throws XMLStoreException {
-        IXMLStoreService service = XMLStorePlugin.getDefault().getXMLStoreService();
+        IXMLStoreService service = XMLStoreServiceUtil.getXMLStoreService();
         IXMLEditableInfo info = getStoredUserInfo(service);
         if (info != null) {
             return info;
@@ -126,7 +126,7 @@
     }
     
     public boolean remove() throws XMLStoreException {
-        IXMLStoreService service = XMLStorePlugin.getDefault().getXMLStoreService();
+        IXMLStoreService service = XMLStoreServiceUtil.getXMLStoreService();
         IXMLEditableInfo info = getStoredUserInfo(service);
 
         if (info == null) {
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/ui/URLOpenDialog.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/util/URLOpenDialog.java
similarity index 97%
rename from plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/ui/URLOpenDialog.java
rename to plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/util/URLOpenDialog.java
index bcde4b7..918d226 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/ui/URLOpenDialog.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/util/URLOpenDialog.java
@@ -8,9 +8,9 @@
  * Contributors:
  *    Daisuke SATO - initial API and implementation
  *******************************************************************************/
-package org.eclipse.actf.ai.navigator.ui;
+package org.eclipse.actf.ai.navigator.util;
 
-import org.eclipse.actf.ai.navigator.Messages;
+import org.eclipse.actf.ai.internal.navigator.Messages;
 import org.eclipse.actf.ui.util.IDialogConstants;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
diff --git a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/views/NavigatorTreeView.java b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/views/NavigatorTreeView.java
index 5d13f12..450c64b 100644
--- a/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/views/NavigatorTreeView.java
+++ b/plugins/org.eclipse.actf.ai.navigator/src/org/eclipse/actf/ai/navigator/views/NavigatorTreeView.java
@@ -11,10 +11,11 @@
 package org.eclipse.actf.ai.navigator.views;
 
 import org.eclipse.actf.ai.fennec.treemanager.ITreeItem;
+import org.eclipse.actf.ai.internal.navigator.Messages;
+import org.eclipse.actf.ai.internal.navigator.NavigatorPlugin;
 import org.eclipse.actf.ai.navigator.IManipulator;
-import org.eclipse.actf.ai.navigator.Messages;
-import org.eclipse.actf.ai.navigator.NavigatorPlugin;
 import org.eclipse.actf.ai.navigator.ui.ModeContribution;
+import org.eclipse.actf.ai.navigator.ui.NavigatorUIUtil;
 import org.eclipse.actf.util.vocab.Vocabulary;
 import org.eclipse.jface.action.IStatusLineManager;
 import org.eclipse.jface.viewers.ArrayContentProvider;
@@ -258,20 +259,20 @@
 
     public boolean isShown() {
         IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-        IViewPart part = page.findView(NavigatorPlugin.NAVIGATOR_TREE_VIEW_ID);
+        IViewPart part = page.findView(NavigatorUIUtil.NAVIGATOR_TREE_VIEW_ID);
         return part != null;
     }
 
     public boolean toggleViewShowing() {
         IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-        IViewPart part = page.findView(NavigatorPlugin.NAVIGATOR_TREE_VIEW_ID);
+        IViewPart part = page.findView(NavigatorUIUtil.NAVIGATOR_TREE_VIEW_ID);
 
         if (part != null) {
             page.hideView(part);
             return false;
         } else {
             try {
-                page.showView(NavigatorPlugin.NAVIGATOR_TREE_VIEW_ID);
+                page.showView(NavigatorUIUtil.NAVIGATOR_TREE_VIEW_ID);
                 return true;
             } catch (PartInitException e) {
                 e.printStackTrace();
diff --git a/plugins/org.eclipse.actf.ai.query/META-INF/MANIFEST.MF b/plugins/org.eclipse.actf.ai.query/META-INF/MANIFEST.MF
index 9853735..2094011 100644
--- a/plugins/org.eclipse.actf.ai.query/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.actf.ai.query/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: Eclipse ACTF Query Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.actf.ai.query
 Bundle-Version: 0.0.1.qualifier
-Bundle-Activator: org.eclipse.actf.ai.query.QueryPlugin
+Bundle-Activator: org.eclipse.actf.ai.internal.query.QueryPlugin
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.actf.model.dom.dombycom,
diff --git a/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/QueryPlugin.java b/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/internal/query/QueryPlugin.java
similarity index 96%
rename from plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/QueryPlugin.java
rename to plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/internal/query/QueryPlugin.java
index cb594c0..799af5a 100644
--- a/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/query/QueryPlugin.java
+++ b/plugins/org.eclipse.actf.ai.query/src/org/eclipse/actf/ai/internal/query/QueryPlugin.java
@@ -9,7 +9,7 @@
  *    Hisashi MIYASHITA - initial API and implementation
  *******************************************************************************/
 
-package org.eclipse.actf.ai.query;
+package org.eclipse.actf.ai.internal.query;
 
 import org.eclipse.core.runtime.Plugin;
 import org.osgi.framework.BundleContext;
diff --git a/plugins/org.eclipse.actf.ai.xmlstore/META-INF/MANIFEST.MF b/plugins/org.eclipse.actf.ai.xmlstore/META-INF/MANIFEST.MF
index 61aae2b..1e63ce5 100644
--- a/plugins/org.eclipse.actf.ai.xmlstore/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.actf.ai.xmlstore/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: Eclipse ACTF XML store Plug-in (Incubation)
 Bundle-SymbolicName: org.eclipse.actf.ai.xmlstore
 Bundle-Version: 0.0.1.qualifier
-Bundle-Activator: org.eclipse.actf.ai.xmlstore.XMLStorePlugin
+Bundle-Activator: org.eclipse.actf.ai.internal.xmlstore.XMLStorePlugin
 Bundle-Vendor: Eclipse.org
 Require-Bundle: org.eclipse.core.runtime
 Eclipse-LazyStart: true
diff --git a/plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/xmlstore/XMLStorePlugin.java b/plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/internal/xmlstore/XMLStorePlugin.java
similarity index 78%
rename from plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/xmlstore/XMLStorePlugin.java
rename to plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/internal/xmlstore/XMLStorePlugin.java
index 81b8467..685e3a1 100644
--- a/plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/xmlstore/XMLStorePlugin.java
+++ b/plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/internal/xmlstore/XMLStorePlugin.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and Others
+ * Copyright (c) 2007, 2008 IBM Corporation and Others
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -9,10 +9,11 @@
  *    Hisashi MIYASHITA - initial API and implementation
  *******************************************************************************/
 
-package org.eclipse.actf.ai.xmlstore;
+package org.eclipse.actf.ai.internal.xmlstore;
 
 import java.io.File;
 
+import org.eclipse.actf.ai.xmlstore.XMLStoreServiceUtil;
 import org.eclipse.actf.ai.xmlstore.local.UserXMLStore;
 import org.eclipse.actf.ai.xmlstore.local.XMLStoreLocal;
 import org.eclipse.actf.ai.xmlstore.spi.XMLStoreServiceImpl;
@@ -87,32 +88,12 @@
 		return stateLocationPath.toFile();
 	}
 
-	private static final String[] XML_EXT = new String[] { ".xml", ".fnc" };
-
 	private void initialize() {
 		XMLStoreServiceImpl.getInstance().setUserStore(
 				new UserXMLStore(getLocalDir(UserXMLStore.TEMP_DIR_NAME),
-						XML_EXT));
+						XMLStoreServiceUtil.XML_EXT));
 		XMLStoreServiceImpl.getInstance().addStore(
 				new XMLStoreLocal(getLocalDir(XMLStoreLocal.SYSTEM_DIR_NAME),
-						XML_EXT));
-	}
-
-	/**
-	 * The settings of the application should be contained in the system store.
-	 * 
-	 * @param location
-	 *            the location to be added for searching XML files.
-	 */
-	public void addSystemStore(File location) {
-		XMLStoreServiceImpl.getInstance().addStore(
-				new XMLStoreLocal(location, XML_EXT));
-	}
-
-	/**
-	 * @return the singleton instance of the IXMLStoreService.
-	 */
-	public IXMLStoreService getXMLStoreService() {
-		return XMLStoreServiceImpl.getInstance();
+						XMLStoreServiceUtil.XML_EXT));
 	}
 }
diff --git a/plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/xmlstore/XMLStoreServiceUtil.java b/plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/xmlstore/XMLStoreServiceUtil.java
new file mode 100644
index 0000000..69e025b
--- /dev/null
+++ b/plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/xmlstore/XMLStoreServiceUtil.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and Others
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Kentarou FUKUDA - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.actf.ai.xmlstore;
+
+import java.io.File;
+
+import org.eclipse.actf.ai.xmlstore.local.XMLStoreLocal;
+import org.eclipse.actf.ai.xmlstore.spi.XMLStoreServiceImpl;
+
+/**
+ * Utility class for IXMLStoreService
+ */
+public class XMLStoreServiceUtil {
+
+	/**
+	 * The extensions for the XML files used for addSystemStore method.
+	 */
+	public static final String[] XML_EXT = new String[] { ".xml", ".fnc" };
+
+	/**
+	 * The settings of the application should be contained in the system store.
+	 * 
+	 * @param location
+	 *            the location to be added for searching XML files.
+	 */
+	public static void addSystemStore(File location) {
+		XMLStoreServiceImpl.getInstance().addStore(
+				new XMLStoreLocal(location, XMLStoreServiceUtil.XML_EXT));
+	}
+
+	/**
+	 * @return the singleton instance of the IXMLStoreService.
+	 */
+	public static IXMLStoreService getXMLStoreService() {
+		return XMLStoreServiceImpl.getInstance();
+	}
+
+
+}
diff --git a/plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/xmlstore/spi/XMLStoreServiceImpl.java b/plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/xmlstore/spi/XMLStoreServiceImpl.java
index a4279e8..f8588f0 100644
--- a/plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/xmlstore/spi/XMLStoreServiceImpl.java
+++ b/plugins/org.eclipse.actf.ai.xmlstore/src/org/eclipse/actf/ai/xmlstore/spi/XMLStoreServiceImpl.java
@@ -21,13 +21,13 @@
 import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
+import org.eclipse.actf.ai.internal.xmlstore.XMLStorePlugin;
 import org.eclipse.actf.ai.xmlstore.IXMLEditableInfo;
 import org.eclipse.actf.ai.xmlstore.IXMLInfo;
 import org.eclipse.actf.ai.xmlstore.IXMLSelector;
 import org.eclipse.actf.ai.xmlstore.IXMLStore;
 import org.eclipse.actf.ai.xmlstore.IXMLStoreService;
 import org.eclipse.actf.ai.xmlstore.XMLStoreException;
-import org.eclipse.actf.ai.xmlstore.XMLStorePlugin;
 import org.eclipse.actf.ai.xmlstore.local.UserXMLStore;
 import org.eclipse.actf.ai.xmlstore.local.XMLStoreLocal;