diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java
index b84f99d0d0e0c21cf3d83276c00681f6be99f4b8..7fb20e77dd6f62b21a2e8bad9ae56281c2666715 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/plugin/IModule.java
@@ -25,12 +25,21 @@ import com.google.gwt.user.client.ui.Widget;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMenuItem;
 
 /**
- * Plugin that does not depend on entity kind and type.
+ * Plugin that does not depend on entity kind and type. All methods except
+ * {@link #initialize(AsyncCallback)} is invoked after invocation of the call back of the
+ * initialization method.
  * 
  * @author Izabela Adamczyk
  */
 public interface IModule
 {
+    /**
+     * Initializes the module and invoke method {@link AsyncCallback#onSuccess(Object)} on the
+     * specified call back after successful initialization. Otherwise
+     * {@link AsyncCallback#onFailure(Throwable)} is invoked.
+     */
+    void initialize(AsyncCallback<Void> callback);
+    
     /**
      * Returns a widget that will be used as a top menu element.
      * <p>
@@ -46,9 +55,9 @@ public interface IModule
     String getModuleName();
     
     String getModuleDescription();
-    
+
     /**
-     * Returns a list with at least one menu item. 
+     * Returns a list with menu items. The list empty if this module isn't applicable. 
      */
     List<Component> getMenuItems();
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java
index d0e180ba0030ef5401a2aa1511d41a33cb3718e7..5bba0a7335ba3cf666e0a3dada3818251e6a4c20 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/demo/client/web/client/application/module/DemoModule.java
@@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.plugin.demo.client.web.client.application.modul
 import java.util.List;
 
 import com.extjs.gxt.ui.client.widget.Component;
+import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.Widget;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
@@ -69,4 +70,10 @@ public class DemoModule implements IModule
         // TODO Auto-generated method stub
         return null;
     }
+
+    public void initialize(AsyncCallback<Void> callback)
+    {
+        // TODO Auto-generated method stub
+        
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java
index 95503872fa6ffefb5aa21cde7e0bf8af45044060..7b764037d252a512ae5608fbbbcccdb735d6fda6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/client/application/QueryModule.java
@@ -20,6 +20,7 @@ import java.util.List;
 
 import com.extjs.gxt.ui.client.widget.Component;
 import com.extjs.gxt.ui.client.widget.button.Button;
+import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.Widget;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
@@ -63,4 +64,10 @@ public class QueryModule implements IModule
         return null;
     }
 
+    public void initialize(AsyncCallback<Void> callback)
+    {
+        // TODO Auto-generated method stub
+        
+    }
+
 }