Index: guiframe/gui_manager.py
===================================================================
--- guiframe/gui_manager.py	(revision b5ca22392a8b926450a207ca7fb9c9bf296558e2)
+++ guiframe/gui_manager.py	(revision b7c7a1cf3a0885c7bb79804707fa30aa239ccdc5)
@@ -55,5 +55,5 @@
         Initialize the Frame object
         """
-        from local_perspectives.plotting import plotting
+        
         wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition,
                           size=(window_width, window_height))
@@ -86,5 +86,11 @@
         # Modify this so that we can specify the directory to look into
         self.plugins = []
+        #add local plugin
+      
+        from sans.guiframe.local_perspectives.plotting import plotting
+        from sans.guiframe.local_perspectives.data_loader import data_loader
         self.plugins.append(plotting.Plugin())
+        self.plugins.append(data_loader.Plugin())
+        
         self.plugins += self._find_plugins()
       
@@ -375,4 +381,17 @@
         return ID
         
+    def _populate_file_menu(self):
+        """
+        Insert menu item under file menu
+        """
+        for plugin in self.plugins:
+            if len(plugin.populate_file_menu()) > 0:
+                id = wx.NewId()
+                for item in plugin.populate_file_menu():
+                    m_name, m_hint, m_handler = item
+                    self.filemenu.Append(id, m_name, m_hint)
+                    wx.EVT_MENU(self, id, m_handler)
+                self.filemenu.AppendSeparator()
+                
     def _setup_menus(self):
         """
@@ -380,13 +399,10 @@
         """
         # Menu
-        menubar = wx.MenuBar()
+        self._menubar = wx.MenuBar()
         # File menu
         self.filemenu = wx.Menu()
         
-        id = wx.NewId()
-        self.filemenu.Append(id, '&Open', 'Load data file into the application')
-        wx.EVT_MENU(self, id, self._on_open)
-        #self.filemenu.AppendSeparator()
-        
+        # some menu of plugin to be seen under file menu
+        self._populate_file_menu()
         id = wx.NewId()
         self.filemenu.Append(id, '&Save',
@@ -400,5 +416,5 @@
         
         # Add sub menus
-        menubar.Append(self.filemenu, '&File')
+        self._menubar.Append(self.filemenu, '&File')
         
         # Window menu
@@ -425,5 +441,5 @@
                                         "Show %s window" % panel.window_caption)
                         wx.EVT_MENU(self, int(item), self._on_view)
-                menubar.Append(viewmenu, '&Window')
+                self._menubar.Append(viewmenu, '&Window')
 
         # Perspective
@@ -443,5 +459,5 @@
                                   "Switch to %s perspective" % plug.sub_menu)
                     wx.EVT_MENU(self, id, plug.on_perspective)
-            menubar.Append(p_menu, '&Perspective')
+            self._menubar.Append(p_menu, '&Perspective')
  
         # Tools menu
@@ -458,5 +474,5 @@
                     wx.EVT_MENU(self, id, tool[2])
         if toolsmenu is not None:
-            menubar.Append(toolsmenu, '&Tools')
+            self._menubar.Append(toolsmenu, '&Tools')
  
         # Help menu
@@ -494,8 +510,8 @@
                 for (self.next_id, menu, name) in \
                     item.populate_menu(self.next_id, self):
-                    menubar.Append(menu, name)
+                    self._menubar.Append(menu, name)
                    
-        menubar.Append(helpmenu, '&Help')
-        self.SetMenuBar(menubar)
+        self._menubar.Append(helpmenu, '&Help')
+        self.SetMenuBar(self._menubar)
     
     def _on_status_event(self, evt):
@@ -657,27 +673,4 @@
         Store info to retrieve in xml before closing the application
         """
-        try:
-            doc = xml.dom.minidom.Document()
-            main_node = doc.createElement("file Path")
-            doc.appendChild(main_node)
-        
-            for item in self.filePathList:
-                id, menuitem_name, path, title = item
-                pt1 = doc.createElement("File")
-                pt1.setAttribute("name", menuitem_name)
-                pt2 = doc.createElement("path")
-                pt2.appendChild(doc.createTextNode(str(path)))
-                pt1.appendChild(pt2)
-                pt3 = doc.createElement("title")
-                pt3.appendChild(doc.createTextNode(str(title)))
-                pt1.appendChild(pt3)
-                main_node.appendChild(pt1)
-            
-            fd = open("fileOpened.xml",'w')
-            fd.write(doc.toprettyxml())
-            fd.close()
-        except:
-            pass
-        #import sys
         wx.Exit()
         sys.exit()
@@ -847,11 +840,5 @@
                 pass
         return path
-    
-    def load_ascii_1D(self, path):
-        """
-        """
-        from .data_loader import load_ascii_1D
-        return load_ascii_1D(path)
-                  
+
 class DefaultPanel(wx.Panel):
     """
Index: guiframe/gui_style.py
===================================================================
--- guiframe/gui_style.py	(revision b7c7a1cf3a0885c7bb79804707fa30aa239ccdc5)
+++ guiframe/gui_style.py	(revision b7c7a1cf3a0885c7bb79804707fa30aa239ccdc5)
@@ -0,0 +1,10 @@
+
+"""
+Provide the style for guiframe
+"""
+
+LOADING = True
+PLOTTING = True
+DATAMANAGER = True
+
+DEFAUL_GUIFRAME = LOADING | PLOTTING|DATAMANAGER
Index: guiframe/local_perspectives/data_loader/data_loader.py
===================================================================
--- guiframe/local_perspectives/data_loader/data_loader.py	(revision b7c7a1cf3a0885c7bb79804707fa30aa239ccdc5)
+++ guiframe/local_perspectives/data_loader/data_loader.py	(revision b7c7a1cf3a0885c7bb79804707fa30aa239ccdc5)
@@ -0,0 +1,31 @@
+
+"""
+plugin DataLoader responsible of loading data
+"""
+
+from sans.guiframe.plugin_base import PluginBase
+
+class Plugin(PluginBase):
+    
+    def __init__(self, standalone=False):
+        PluginBase.__init__(self, name="DataLaoder", standalone=standalone)
+        
+    def populate_file_menu(self):
+        """
+        get a menu item and append it under file menu of the application
+        add load file menu item and load folder item
+        """
+        hint_load_folder = "Read file(s) from a folder and load"
+        hint_load_folder += " them into the application"
+        hint_load_file = "Read files and load them into the application"
+        return [["Load File", hint_load_file, self._load_file],
+                ["Load Folder", hint_load_folder ,self._load_file]]
+  
+    def _load_file(self, event):
+        """
+        Load file(s)
+        """
+    def _load_folder(self, event):
+        """
+        Load entire folder
+        """
Index: guiframe/local_perspectives/plotting/plotting.py
===================================================================
--- guiframe/local_perspectives/plotting/plotting.py	(revision 7f84e22fbda2c7f8fe3ebebf3fa049e8404913e8)
+++ guiframe/local_perspectives/plotting/plotting.py	(revision b7c7a1cf3a0885c7bb79804707fa30aa239ccdc5)
@@ -30,4 +30,11 @@
         self.plot_panels = []
        
+    def is_always_active(self):
+        """
+        return True is this plugin is always active even if the user is 
+        switching between perspectives
+        """
+        return True
+    
     def populate_menu(self, id, parent):
         """
Index: guiframe/plugin_base.py
===================================================================
--- guiframe/plugin_base.py	(revision b5ca22392a8b926450a207ca7fb9c9bf296558e2)
+++ guiframe/plugin_base.py	(revision b7c7a1cf3a0885c7bb79804707fa30aa239ccdc5)
@@ -33,4 +33,6 @@
             Abstract class for gui_manager Plugins.
         """
+        # Define if the plugin is local to Viewerframe  and always active
+        self._always_active = False
         ## Plug-in name. It will appear on the application menu.
         self.sub_menu = name     
@@ -44,4 +46,22 @@
         self.perspective = []
         
+    def set_is_active(self, active=False):
+        """
+        """
+        self._always_active = active
+        
+    def is_always_active(self):
+        """
+        return True is this plugin is always active and it is local to guiframe
+        even if the user is switching between perspectives
+        """
+        return self._always_active
+    
+    def populate_file_menu(self):
+        """
+        get a menu item and append it under file menu of the application
+        return [[menu item name, menu_hint, menu handler]]
+        """
+        return []
         
     def populate_menu(self, id, parent):
