Index: sansview/perspectives/fitting/basepage.py
===================================================================
--- sansview/perspectives/fitting/basepage.py	(revision a5701e67139bfd1a0206e748df96d61b9d153ebc)
+++ sansview/perspectives/fitting/basepage.py	(revision b2d98260cb7c4d561f45d7b4b5a619d1ceba43a1)
@@ -1712,4 +1712,5 @@
         Fill panel's combo box according to the type of model selected
         """
+        self.model_list_box = self.parent.update_model_list()
         if self.shape_rbutton.GetValue():
             ##fill the combobox with form factor list
@@ -1762,5 +1763,4 @@
             item must model class
         """
-        st = time.time()
         for models in list:
             model= models()
Index: sansview/perspectives/fitting/fitpage.py
===================================================================
--- sansview/perspectives/fitting/fitpage.py	(revision a5701e67139bfd1a0206e748df96d61b9d153ebc)
+++ sansview/perspectives/fitting/fitpage.py	(revision b2d98260cb7c4d561f45d7b4b5a619d1ceba43a1)
@@ -1053,4 +1053,5 @@
             event = PageInfoEvent(page = self)
             wx.PostEvent(self.parent, event) 
+        #
       
       
Index: sansview/perspectives/fitting/fitpanel.py
===================================================================
--- sansview/perspectives/fitting/fitpanel.py	(revision ae4ade7b99d36ba657f0674907b3aa488e3063d0)
+++ sansview/perspectives/fitting/fitpanel.py	(revision b2d98260cb7c4d561f45d7b4b5a619d1ceba43a1)
@@ -42,5 +42,5 @@
         #dictionary of miodel {model class name, model class}
         self.menu_mng = models.ModelManager()
-        self.model_list_box = self.menu_mng.get_model_list().get_list()
+        self.model_list_box = self.menu_mng.get_model_list()
         #pageClosedEvent = fnb.EVT_FLATNOTEBOOK_PAGE_CLOSING 
         self.Bind(fnb.EVT_FLATNOTEBOOK_PAGE_CLOSING , self.on_close_page)
@@ -60,4 +60,11 @@
         self.add_default_pages()
     
+    def update_model_list(self):
+        """
+        """
+        self.model_list_box = self.menu_mng.update()
+        return self.model_list_box
+        
+        
     def get_page_by_id(self, id):  
         """
Index: sansview/perspectives/fitting/fitting.py
===================================================================
--- sansview/perspectives/fitting/fitting.py	(revision ae4ade7b99d36ba657f0674907b3aa488e3063d0)
+++ sansview/perspectives/fitting/fitting.py	(revision b2d98260cb7c4d561f45d7b4b5a619d1ceba43a1)
@@ -256,8 +256,10 @@
         return True
     
-    def set_data(self, data_list):
+    def set_data(self, data_list=None, theory_list=None):
         """
         receive a list of data to fit
         """
+        if data_list is None:
+            data_list = []
         selected_data_list = []
         if len(data_list) > MAX_NBR_DATA :
@@ -1163,5 +1165,5 @@
             if data is None:
                 theory_data = self.page_finder[id].get_theory_data()
-                self.parent.add_data_helper(data_list=[theory_data])
+                self.parent.add_data_helper({theory_data.id:theory_data})
                 data_id = theory_data.id
             else:
@@ -1249,5 +1251,5 @@
         if data is None:
             theory_data = self.page_finder[id].get_theory_data()
-            self.parent.add_data_helper(data_list=[theory_data])
+            self.parent.add_data_helper({theory_data.id:theory_data})
             data_id = theory_data.id
         else:
Index: sansview/perspectives/fitting/models.py
===================================================================
--- sansview/perspectives/fitting/models.py	(revision 6bbeacd466719479cfdf24b6e7c1c5f52c93e03d)
+++ sansview/perspectives/fitting/models.py	(revision b2d98260cb7c4d561f45d7b4b5a619d1ceba43a1)
@@ -78,5 +78,5 @@
     """
     # List of plugin objects
-    plugins = []
+    plugins = {}
     # Go through files in plug-in directory
     try:
@@ -95,5 +95,5 @@
                         try:
                             if _check_plugin(module.Model, name)!=None:
-                                plugins.append(module.Model)
+                                plugins[name] = module.Model
                         except:
                             msg="Error accessing Model"
@@ -150,15 +150,15 @@
     struct_factor_dict = {}
     ##list of form factors
-    shape_list =[]
+    shape_list = []
     ## independent shape model list
     shape_indep_list = []
     ##list of structure factors 
-    struct_list= []
+    struct_list = []
     ##list of model allowing multiplication
-    multiplication_factor=[]
+    multiplication_factor = []
     ##list of multifunctional shapes
-    multi_func_list =[]
+    multi_func_list = []
     ## list of added models
-    plugins=[]
+    plugins = []
     ## Event owner (guiframe)
     event_owner = None
@@ -166,4 +166,5 @@
         """
         """
+        self.stored_plugins = {}
         self._getModelList()
         
@@ -388,11 +389,24 @@
     
         #Looking for plugins
-        self.plugins = findModels()
-        self._get_multifunc_models()
+        self.stored_plugins = findModels()
+        self.plugins = self.stored_plugins.values()
         self.plugins.append(ReflectivityModel)
         self.plugins.append(ReflectivityIIModel)
+        self._get_multifunc_models()
+       
         return 0
 
     
+    def update(self):
+        """
+        """
+        new_plugins = findModels()
+        for name, plug in  new_plugins.iteritems():
+            if name not in self.stored_plugins.keys():
+                self.stored_plugins[name] = plug
+                self.plugins.append(plug)
+        self.model_combobox.set_list("Customized Models", self.plugins)
+        return self.model_combobox.get_list()
+        
     def populate_menu(self, modelmenu, event_owner):
         """
@@ -563,5 +577,5 @@
         self.model_combobox.set_list("multiplication", self.multiplication_factor)
         self.model_combobox.set_list("Multi-Functions", self.multi_func_list)
-        return self.model_combobox
+        return self.model_combobox.get_list()
     
   
