Index: sansview/perspectives/fitting/fitpage.py
===================================================================
--- sansview/perspectives/fitting/fitpage.py	(revision ca7a626b626c0cd7ae26019297549c54fc6a016f)
+++ sansview/perspectives/fitting/fitpage.py	(revision 6f023e822f5665377825081d22bbb91cbca7090b)
@@ -29,4 +29,5 @@
             Initialization of the Panel
         """
+        self.name= self.data.name
         ## fit page does not content npts txtcrtl
         self.npts=None
@@ -328,5 +329,5 @@
         self.qmin_x=float(self.qmin.GetValue())
         self.qmax_x =float( self.qmax.GetValue())
-        
+        self.manager._reset_schedule_problem( value=0)
         self.manager.schedule_for_fit( value=1,page=self,fitproblem =None) 
         self.manager.set_fit_range(page= self,qmin= self.qmin_x, qmax= self.qmax_x)
Index: sansview/perspectives/fitting/fitpanel.py
===================================================================
--- sansview/perspectives/fitting/fitpanel.py	(revision 00c3aac2ed8b11897250eb4613d6853592049f62)
+++ sansview/perspectives/fitting/fitpanel.py	(revision 6f023e822f5665377825081d22bbb91cbca7090b)
@@ -6,5 +6,5 @@
 #import models
 _BOX_WIDTH = 80
-(FitPageEvent, EVT_FIT_PAGE)   = wx.lib.newevent.NewEvent()
+(PageInfoEvent, EVT_PAGE_INFO)   = wx.lib.newevent.NewEvent()
 
 class FitPanel(wx.aui.AuiNotebook):    
@@ -61,4 +61,7 @@
              close page and remove all references to the closed page
         """
+        page_info=self.get_current_page().page_info.clone()
+        self.manager._add_page_onmenu("Model", page_info)
+        
         selected_page = self.GetPage(self.GetSelection())
         page_number = self.GetSelection()
@@ -152,5 +155,5 @@
             panel = FitPage(parent= self, page_info=myinfo, name=name )
             panel.name=name
-            
+            panel.window_name= "fitpage"
             panel.set_manager(self.manager)
             panel.set_owner(self.event_owner)
@@ -159,5 +162,5 @@
             #panel.populate_box( self.model_list_box)
             self.fit_page_name.append(name)
-    
+            
             return panel 
         else:
@@ -199,4 +202,5 @@
         #FOR PLUGIN  for some reason model.name is = BASEcomponent
         self.manager.draw_model(model)
+        
      
         
Index: sansview/perspectives/fitting/fitting.py
===================================================================
--- sansview/perspectives/fitting/fitting.py	(revision ca7a626b626c0cd7ae26019297549c54fc6a016f)
+++ sansview/perspectives/fitting/fitting.py	(revision 6f023e822f5665377825081d22bbb91cbca7090b)
@@ -3,5 +3,5 @@
 import string, numpy, math
 
-from copy import deepcopy 
+#import copy,deepcopy 
 from danse.common.plottools.plottables import Data1D, Theory1D,Data2D
 from danse.common.plottools.PlotPanel import PlotPanel
@@ -22,4 +22,6 @@
 import time
 import thread
+
+(PageInfoEvent, EVT_PAGE_INFO)   = wx.lib.newevent.NewEvent()
 class PlotInfo:
     """
@@ -63,4 +65,6 @@
         #Flag to let the plug-in know that it is running stand alone
         self.standalone=True
+        ## dictionary of page closed and id 
+        self.closed_page_dict ={}
         ## Fit engine
         self._fit_engine = 'scipy'
@@ -87,19 +91,23 @@
         #Menu for fitting
         self.menu1 = wx.Menu()
-        id1 = wx.NewId()
-        self.menu1.Append(id1, '&Simultaneous')
-        wx.EVT_MENU(owner, id1, self.on_add_sim_page)
-        self.menu1.AppendSeparator()
+        
         #Set park engine
         id3 = wx.NewId()
         scipy_help= "Scipy Engine: Perform Simple fit. More in Help window...."
-        self.menu1.Append(id3, "Scipy",scipy_help) 
+        #self.menu1.Append(id3, "Scipy",scipy_help) 
+        self.menu1.AppendCheckItem(id3, "Scipy",scipy_help) 
         wx.EVT_MENU(owner, id3,  self._onset_engine_scipy)
-        self.menu1.AppendSeparator()
+        
         id3 = wx.NewId()
         park_help = "Park Engine: Perform Complex fit. More in Help window...."
-        self.menu1.Append(id3, "park",park_help) 
+        self.menu1.AppendCheckItem(id3, "Park",park_help) 
         wx.EVT_MENU(owner, id3,  self._onset_engine_park)
-        
+        self.menu1.AppendSeparator()
+        
+        id1 = wx.NewId()
+        simul_help = "Allow to edit fit engine with multiple model and data"
+        self.menu1.Append(id1, '&Simultaneous page',simul_help)
+        wx.EVT_MENU(owner, id1, self.on_add_sim_page)
+    
         #menu for model
         menu2 = wx.Menu()
@@ -113,6 +121,11 @@
         owner.Bind(fitpage.EVT_MODEL_BOX,self._on_model_panel)
         
+        self.menu3= wx.Menu()
+        id4 = wx.NewId()
+        
         #create  menubar items
-        return [(id, self.menu1, "Fitting"),(id2, menu2, "Model")]
+        return [(id, self.menu1, "Fitting"),
+                (id4,self.menu3,"Averagers"),
+                (id2, menu2, "Model")]
     
     def on_add_sim_page(self, event):
@@ -356,4 +369,6 @@
                            qstep=qstep)
         
+  
+                        
     def onFit(self):
         """
@@ -427,9 +442,30 @@
             return 
               
-       
-        
-        
-        
-        
+              
+    def _add_page_onmenu(self, name, page_info):
+        """
+            Add name of a closed page of fitpanel in a menu 
+        """
+        # Post paramters
+        event_id = wx.NewId()
+        self.menu1.Append(event_id, name, 
+             "Show %s fit panel" % name)
+        self.closed_page_dict[event_id ]= page_info
+        wx.EVT_MENU(self.parent,event_id,  self._open_closed_page)
+        
+        
+    def _open_closed_page(self, event):    
+        """
+            reopen a closed page
+        """
+        print "reopen"
+        
+    def _reset_schedule_problem(self, value=0):
+        """
+             unschedule or schedule all fitproblem to be fit
+        """
+        for page, fitproblem in self.page_finder.iteritems():
+            fitproblem.schedule_tofit(value)
+            
     def _fit_helper(self,current_pg,pars,value, id, title="Single Fit " ):
         """
@@ -637,4 +673,6 @@
             set engine to park
         """
+        if event.IsChecked():
+            self.menu1.FindItemByPosition(0).Check(False)
         self._on_change_engine('park')
        
@@ -644,4 +682,6 @@
             set engine to scipy
         """
+        if event.IsChecked():
+            self.menu1.FindItemByPosition(1).Check(False)
         self._on_change_engine('scipy')
        
@@ -655,5 +695,5 @@
             # Set group ID if available
             event_id = self.parent.popup_panel(new_panel)
-            self.menu1.Append(event_id, new_panel.window_caption, 
+            self.menu3.Append(event_id, new_panel.window_caption, 
                              "Show %s plot panel" % new_panel.window_caption)
             # Set UID to allow us to reference the panel later
@@ -662,5 +702,5 @@
             self.mypanels.append(new_panel) 
         return    
-    
+   
     def _on_change_engine(self, engine='park'):
         """
Index: sansview/perspectives/fitting/modelpage.py
===================================================================
--- sansview/perspectives/fitting/modelpage.py	(revision dfae8b3b3a0546b0b9b795e0f14224d31a0c740d)
+++ sansview/perspectives/fitting/modelpage.py	(revision 6f023e822f5665377825081d22bbb91cbca7090b)
@@ -29,5 +29,5 @@
             Initialization of the Panel
         """
-        
+        self.name ="Model"
         self._fill_model_sizer( self.sizer1)  
         self._fill_range_sizer() 
Index: sansview/perspectives/fitting/pageInfo.py
===================================================================
--- sansview/perspectives/fitting/pageInfo.py	(revision c77d8592395f6684cf45ee976c1cac9db9c00110)
+++ sansview/perspectives/fitting/pageInfo.py	(revision 6f023e822f5665377825081d22bbb91cbca7090b)
@@ -2,4 +2,5 @@
 
 import wx
+import copy
 
 class PageInfo(object):
@@ -69,5 +70,13 @@
         self.list_of_radiobox[label]=[label, id, state]    
     
-
+    def clone(self):
+        model=None
+        if self.model !=None:
+            model = self.model.clone()
+        
+        obj          = PageInfo( self.parent,model= model )
+        obj.data = copy.deepcopy(self.data)
+        
+        return obj
 
        
Index: sansview/perspectives/fitting/simfitpage.py
===================================================================
--- sansview/perspectives/fitting/simfitpage.py	(revision ca7a626b626c0cd7ae26019297549c54fc6a016f)
+++ sansview/perspectives/fitting/simfitpage.py	(revision 6f023e822f5665377825081d22bbb91cbca7090b)
@@ -125,4 +125,8 @@
         ## model was actually selected from this page to be fit
         if len(self.model_toFit) >= 1 :
+            self.manager._reset_schedule_problem( value=0)
+            for item in self.model_list:
+                if item[0].GetValue():
+                    self.manager.schedule_for_fit( value=1,fitproblem =item[1]) 
             self.manager.onFit()
         else:
@@ -148,5 +152,4 @@
             for item in self.model_list:
                 item[0].SetValue(True)
-                self.manager.schedule_for_fit( value=1,fitproblem =item[1]) 
                 self.model_toFit.append(item)
                 
@@ -160,5 +163,4 @@
             for item in self.model_list:
                 item[0].SetValue(False) 
-                self.manager.schedule_for_fit( value=0,fitproblem =item[1]) 
                 
             self.model_toFit=[]
@@ -175,7 +177,5 @@
             if item[0].GetValue()==True:
                 self.model_toFit.append(item)
-                self.manager.schedule_for_fit( value=1,fitproblem =item[1]) 
             else:
-                self.manager.schedule_for_fit( value=0,fitproblem =item[1]) 
                 if item in self.model_toFit:
                     self.model_toFit.remove(item)
