Index: sansview/perspectives/fitting/basepage.py
===================================================================
--- sansview/perspectives/fitting/basepage.py	(revision 3c44c66f5a43cf590e90b9a7ba318e6e6f869f58)
+++ sansview/perspectives/fitting/basepage.py	(revision 4523b6854d1499ab35e8e024eeddfffd99dfe319)
@@ -929,5 +929,7 @@
         self.formfactorbox.Select(int(state.formfactorcombobox))
         self.structurebox.SetSelection(state.structurecombobox )
-       
+        if state.multi_factor != None:
+            self.multifactorbox.SetSelection(state.multi_factor-1)
+
         #reset the fitting engine type
         self.engine_type = state.engine_type
@@ -1584,5 +1586,5 @@
         else:
             boxsizer1 = box_sizer
-            
+        sizer_buttons = wx.BoxSizer(wx.HORIZONTAL)    
         #--------------------------------------------------------
         self.shape_rbutton = wx.RadioButton(self, -1, 'Shapes', style=wx.RB_GROUP)
@@ -1605,12 +1607,19 @@
         sizer_radiobutton.Add(self.shape_rbutton)
         sizer_radiobutton.Add(self.shape_indep_rbutton)
+
         sizer_radiobutton.Add(self.plugin_rbutton)
         sizer_radiobutton.Add(self.struct_rbutton)
+        sizer_buttons.Add(sizer_radiobutton)
+        # detail button
+        if object !=None:
+            sizer_buttons.Add((50,0))
+            sizer_buttons.Add(object)
         
         sizer_selection = wx.BoxSizer(wx.HORIZONTAL)
+        mutifactor_selection = wx.BoxSizer(wx.HORIZONTAL)
         
         self.text1 = wx.StaticText( self,-1,"" )
         self.text2 = wx.StaticText( self,-1,"P(Q)*S(Q)" )
-        
+        self.mutifactor_text = wx.StaticText( self,-1,"No. of Shells: " )
         
         self.formfactorbox = wx.ComboBox(self, -1,style=wx.CB_READONLY)
@@ -1619,11 +1628,11 @@
            
         self.structurebox = wx.ComboBox(self, -1,style=wx.CB_READONLY)
-        
+        self.multifactorbox = wx.ComboBox(self, -1,style=wx.CB_READONLY)
         self.initialize_combox()
              
         wx.EVT_COMBOBOX(self.formfactorbox,-1, self._on_select_model)
         wx.EVT_COMBOBOX(self.structurebox,-1, self._on_select_model)
-        
-       
+        wx.EVT_COMBOBOX(self.multifactorbox,-1, self._on_select_model)
+        
         ## check model type to show sizer
         if self.model !=None:
@@ -1637,17 +1646,49 @@
         sizer_selection.Add((5,5))
         sizer_selection.Add(self.structurebox)
-        sizer_selection.Add((5,5))
-        
-        boxsizer1.Add( sizer_radiobutton )
-        boxsizer1.Add( (20,20))
+        #sizer_selection.Add((5,5))
+        mutifactor_selection.Add((10,5))
+        mutifactor_selection.Add(self.mutifactor_text)
+        mutifactor_selection.Add(self.multifactorbox)
+        
+        boxsizer1.Add( sizer_buttons )
+        boxsizer1.Add( (15,15))
         boxsizer1.Add( sizer_selection )
-        if object !=None:
-            boxsizer1.Add( (-72,-72))
-            boxsizer1.Add( object,  0, wx.ALIGN_RIGHT| wx.RIGHT, 35)
-            boxsizer1.Add( (60,60))
+        boxsizer1.Add( (10,10))
+        boxsizer1.Add(mutifactor_selection)
+        
+        self._set_multfactor_combobox()
+
         #--------------------------------------------------------
         sizer.Add(boxsizer1,0, wx.EXPAND | wx.ALL, 10)
         sizer.Layout()
         self.SetScrollbars(20,20,25,65)
+        
+    def _set_multfactor_combobox(self):   
+        """
+        Set comboBox for muitfactor of CoreMultiShellModel
+        """
+        for idx in range(1,5):
+            self.multifactorbox.Append(str(idx),int(idx))
+            self.multifactorbox.SetSelection(0) 
+        self._hide_multfactor_combobox()
+        
+    def _show_multfactor_combobox(self):   
+        """
+        Show the comboBox of muitfactor of CoreMultiShellModel
+        """ 
+        if not self.mutifactor_text.IsShown():
+            self.mutifactor_text.Show(True)
+        if not self.multifactorbox.IsShown():
+            self.multifactorbox.Show(True)  
+             
+    def _hide_multfactor_combobox(self):   
+        """
+        Hide the comboBox of muitfactor of CoreMultiShellModel
+        """ 
+        if self.mutifactor_text.IsShown():
+            self.mutifactor_text.Hide()
+        if self.multifactorbox.IsShown():
+            self.multifactorbox.Hide()   
+
         
     def _show_combox_helper(self):
@@ -1797,20 +1838,41 @@
             self.structurebox.Enable()
             self.text2.Enable()
+            
+        if form_factor != None:    
+            # set multifactor for Mutifunctional models    
+            if form_factor().name == 'CoreMultiShellModel':
+                self._show_multfactor_combobox()
+                m_id = self.multifactorbox.GetCurrentSelection()
+                self.multi_factor = self.multifactorbox.GetClientData(m_id)
+                if self.multi_factor == None: self.multi_factor =0
+                form_factor = form_factor(int(self.multi_factor))
+            else:
+                self._hide_multfactor_combobox()
+                form_factor = form_factor()
+                self.multi_factor = None
+        else:
+            self._hide_multfactor_combobox()
+            self.multi_factor = None  
+              
         s_id = self.structurebox.GetCurrentSelection()
         struct_factor = self.structurebox.GetClientData( s_id )
-       
+        
         if  struct_factor !=None:
             from sans.models.MultiplicationModel import MultiplicationModel
-            self.model= MultiplicationModel(form_factor(),struct_factor())
+            self.model= MultiplicationModel(form_factor,struct_factor())
             
         else:
             if form_factor != None:
-                self.model= form_factor()
+                self.model= form_factor
             else:
                 self.model = None
                 return self.model
+            
+
         ## post state to fit panel
         self.state.parameters =[]
         self.state.model =self.model
+        self.state.qmin = self.qmin_x
+        self.state.multi_factor = self.multi_factor
         self.disp_list =self.model.getDispParamList()
         self.state.disp_list = self.disp_list
Index: sansview/perspectives/fitting/models.py
===================================================================
--- sansview/perspectives/fitting/models.py	(revision 5062bbf9abf800e4b5ffab0375da1c4a03967672)
+++ sansview/perspectives/fitting/models.py	(revision 4523b6854d1499ab35e8e024eeddfffd99dfe319)
@@ -182,8 +182,8 @@
         self.shape_list.append(CoreShellModel)
         self.multiplication_factor.append(CoreShellModel)
-
-        from sans.models.CoreFourShellModel import CoreFourShellModel
-        self.shape_list.append(CoreFourShellModel)
-        self.multiplication_factor.append(CoreFourShellModel)
+        
+        from sans.models.CoreMultiShellModel import CoreMultiShellModel
+        self.shape_list.append(CoreMultiShellModel)
+        self.multiplication_factor.append(CoreMultiShellModel)
         
         from sans.models.VesicleModel import VesicleModel
Index: sansview/perspectives/fitting/pagestate.py
===================================================================
--- sansview/perspectives/fitting/pagestate.py	(revision b63dc6e69334f4bebbc94688bce123aa816c1c32)
+++ sansview/perspectives/fitting/pagestate.py	(revision 4523b6854d1499ab35e8e024eeddfffd99dfe319)
@@ -223,4 +223,5 @@
         self.npts = None
         self.name = ""
+        self.multi_factor = None
         ## enable smearering state
         self.enable_smearer = False
@@ -297,4 +298,5 @@
         obj.qmin = copy.deepcopy(self.qmin)
         obj.qmax = copy.deepcopy(self.qmax)
+        obj.multi_factor = copy.deepcopy(self.multi_factor)
         obj.npts = copy.deepcopy(self.npts )
         obj.cb1 = copy.deepcopy(self.cb1)
