Index: fittingview/src/sans/perspectives/fitting/fitting.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/fitting.py	(revision 6e01f064cb85dcaa34cf72be2fe3011e642137ac)
+++ fittingview/src/sans/perspectives/fitting/fitting.py	(revision ed8fa6a3d826d430f1d3968e9cd739c02b2f4627)
@@ -267,14 +267,5 @@
                 textdial.write_string(fname, name1, name2)
                 textdial.compile_file(fname)
-
-                page = self.fit_panel.get_current_page()
-                temp = self.fit_panel.reset_pmodel_list()
-                if temp:
-                    page.model_list_box = temp
-                    current_val = page.formfactorbox.GetValue()
-                    pos = page.formfactorbox.GetSelection()
-                    page._show_combox_helper()
-                    page.formfactorbox.SetSelection(pos)
-                    page.formfactorbox.SetValue(current_val)
+                self.update_custom_combo()
             except:
                 raise
@@ -287,5 +278,24 @@
         textdial.Destroy()
 
-  
+    def update_custom_combo(self):
+        """
+        Update custom model list in the fitpage combo box
+        """
+        try:
+            temp = self.fit_panel.reset_pmodel_list()
+            if temp:
+                # Set the new custom model list for all fit pages
+                for uid, page in self.fit_panel.opened_pages.iteritems():
+                    if hasattr(page, "formfactorbox"):
+                        page.model_list_box = temp
+                        current_val = page.formfactorbox.GetValue()
+                        pos = page.formfactorbox.GetSelection()
+                        page._show_combox_helper()
+                        page.formfactorbox.SetSelection(pos)
+                        page.formfactorbox.SetValue(current_val)
+        except:
+            pass
+        
+        
     def set_edit_menu(self, owner):    
         """
Index: fittingview/src/sans/perspectives/fitting/plugin_models/polynominal5.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/plugin_models/polynominal5.py	(revision 7c8d3093945ee0f295c2b919d7b23f654f80158c)
+++ fittingview/src/sans/perspectives/fitting/plugin_models/polynominal5.py	(revision ed8fa6a3d826d430f1d3968e9cd739c02b2f4627)
@@ -7,11 +7,9 @@
 """
 from sans.models.pluginmodel import Model1DPlugin  ##DO NOT CHANGE THIS LINE!!!
+
+## FOR MORE INFORMATION CHECK http://docs.python.org/library/math.html      
+## AND http://www.scipy.org/Numpy_Functions_by_Category
 import math                    ##DO NOT CHANGE THIS LINE!!!
-import numpy                    ##DO NOT CHANGE THIS LINE!!!
-
-##PLEASE READ COMMENTS CAREFULLY !!! COMMENT ARE IN CAPITAL LETTERS AND AFTER ##
-## THESE COMMENTS ARE THERE TO GUIDE YOU. YOU CAN REMOVE THEM ONLY WHEN YOU ARE
-## CONFORTABLE ENOUGH WITH OUR MODEL PLUGIN OPTION
-
+import numpy                   ##DO NOT CHANGE THIS LINE!!!
 
 ## <-----  SIGN DEFINES WHERE YOU CAN MODIFY THE CODE
@@ -25,6 +23,6 @@
     """
     ## YOU CAN MODIFY THE LINE BELLOW. CHANGE ONLY WORDS BETWEEN " " 
-    ## TO RENAME YOUR MODEL
-    name = "polynomial5" ## <----- NAME OF THE MODEL   
+    ## TO RENAME YOUR MODEL: THIS NAME IS WHAT YOU SEE ON GUI.
+    name = "polynomial5"        ## <----- NAME OF THE MODEL   
                                 
     def __init__(self):      ##DO NOT CHANGE THIS LINE!!!
@@ -34,51 +32,18 @@
         Model1DPlugin.__init__(self, name=self.name) ##DO NOT CHANGE THIS LINE!!!
         
-        ## EDIT PARAMETERS' NAMES AND VALUE
-        ## DELETE MODIFIABLE LINE HERE WILL REDUCE THE NUMBER OF PARAMETERS
-        self.params = {}                ##DO NOT CHANGE THIS LINE!!!
-         
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ' AND NUMBER 
-        ## YOU CAN ALSO DELETE THIS LINE                                                      
-        self.params['A'] = 0.0       ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ' AND NUMBER 
-        ## YOU CAN ALSO DELETE THIS LINE                 
-        self.params['B'] = 10.0      ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ' AND NUMBER 
-        ## YOU CAN ALSO DELETE THIS LINE                  
-        self.params['C'] = 0.0       ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ' AND NUMBER 
-        ## YOU CAN ALSO DELETE THIS LINE                
-        self.params['D'] = 0.0     ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ' AND NUMBER 
-        ## YOU CAN ALSO DELETE THIS LINE                   
-        self.params['E'] = 0.0     ## <-----   
-        ## YOU CAN MODIFY THELINE BELLOW.CHANGE WORD BETWEEN ' ' AND NUMBER 
-        ## YOU CAN ALSO DELETE THIS LINE                  
-        self.params['F'] = 0.0     ## <-----          
-
-        ## STORING PARAMETERS  [UNIT, MINIMUM VALUE, MAXIMUM VALUE]
-        self.details = {}    ##DO NOT CHANGE THIS LINE!!! 
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE     
-        self.details['A'] = ['', None, None]        ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE     
-        self.details['B'] = ['', None, None]        ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE     
-        self.details['C'] = ['', None, None]        ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE     
-        self.details['D'] = ['', None, None]        ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE     
-        self.details['E'] = ['', None, None]        ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE     
-        self.details['F'] = ['', None, None]           ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.MODIFY WORDS BETWEEN """   """  ONLY!!!!
-        self.description = """
-        F(x) where F(x)=A+B*x+C*x^2+D*x^3+E*x^4+F*x^5
-        """                        ## <-----   
+        ## HERE WE DEFINE THE PARAM NAME AND ITS INITIAL VALUE 
+        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ' AND NUMBER                                                      
+        self.params['A'] = 0.1       ## <-----                
+        self.params['B'] = 10.0      ## <-----                 
+        self.params['C'] = 0.0       ## <-----                
+        self.params['D'] = 0.0       ## <-----                    
+        self.params['E'] = 0.0       ## <-----                  
+        self.params['F'] = 0.0       ## <-----   
+        
+        ## DEFINE DEFAULT DETAILS
+        self.set_details()      ##DO NOT DELETE OR CHANGE THIS LINE!!!
+        
+        ## IN THIS EXAMPLE THE FUNTION IS:
+        ## F(x)=A+B*x+C*x^2+D*x^3+E*x^4+F*x^5             
    
     def function(self, x = 0.0): ##DO NOT CHANGE THIS LINE!!!
@@ -88,19 +53,7 @@
         :return: function value
         """
-        ## ADD YOUR FUNCTION HERE.
-        ## REUSE THE PARAMETERS DEFINED PREVIOUSLY TO WRITE YOUR FUNCTION.
-        
-        ## IN THIS EXAMPLE THE FUNTION IS:
-        ## F(x)=A+B*x+C*x^2+D*x^3+E*x^4+F*x^5
-     
-        ## NOTE: pow IS A FUNCTION IMPORTED FROM PYTHON MATH LIBRARY
-        ## FOR MORE INFORMATION CHECK http://docs.python.org/library/math.html      
-        ## OTHER FUNCTIONS ARE ALSO 
-        ###  AVAILABLE http://www.scipy.org/Numpy_Functions_by_Category
-        ## numpy FUNCTIONS ARE FOR EXPERT USER
-        
-         
+        ## DEFINE YOUR FUNCTION HERE.
         ## YOU CAN ERASE EVERYTHING BELLOW FOR YOUR OWN FUNCTION
-        #Redefine parameters as local parameters
+        #Redefine parameters as local parameters, or skip and use long name
         a = self.params['A']       ## <-----   
         b = self.params['B']       ## <-----   
@@ -108,20 +61,22 @@
         d = self.params['D']       ## <-----   
         e = self.params['E']       ## <-----   
-        f = self.params['F']        ## <-----   
+        f = self.params['F']       ## <-----   
  
         ##THIS OUR FUNCTION TEMPLATE
-        poly = a + b*x + c*math.pow(x,2) + d*math.pow(x,3) \
-             + e*math.pow(x,4) +f*math.pow(x,5)      ## <-----                
+        poly = a + b * x + c * math.pow(x,2) + d * math.pow(x,3) \
+                + e * math.pow(x,4) + f * math.pow(x,5)              ## <-----                
         
+        #(Just note: In Python, indentation defines the belongings 
+        # of 'if', 'for', and so on..)
         #(lim x --> 0) 
-        #(Just note: In Python, indentation defines the belongings of 'if', 'for', and so on..)
-        if x == 0:                       ## <-----   
+        if x == 0:                          ## <-----   
             result = a                      ## <-----   
         else:                               ## <-----   
-            result = poly    ## <-----    
+            result = poly                   ## <-----    
 
-        return result ## MODIFY ONLY RESULT. DON'T DELETE RETURN!!!!
+        return result       ## MODIFY ONLY RESULT. DON'T DELETE RETURN!!!!
 
-## DO NOT MODIFY THE FOLLOWING LINES!!!!!!!!!!!!!!!!       
+###############################################################################
+## THIS IS FOR TEST. DO NOT MODIFY THE FOLLOWING LINES!!!!!!!!!!!!!!!!       
 if __name__ == "__main__": 
     m= Model() 
Index: fittingview/src/sans/perspectives/fitting/plugin_models/sph_bessel_jn.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/plugin_models/sph_bessel_jn.py	(revision 7c8d3093945ee0f295c2b919d7b23f654f80158c)
+++ fittingview/src/sans/perspectives/fitting/plugin_models/sph_bessel_jn.py	(revision ed8fa6a3d826d430f1d3968e9cd739c02b2f4627)
@@ -54,22 +54,7 @@
         self.params['n'] = 1      ## <----- 
  
-        ## STORING PARAMETERS  [UNIT, MINIMUM VALUE, MAXIMUM VALUE]
-        self.details = {}    ##DO NOT CHANGE THIS LINE!!!
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBESR TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE      
-        self.details['C'] = ['',None, None]    ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE     
-        self.details['A'] = ['', None, None]        ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE     
-        self.details['B'] = ['', None, None]        ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE     
-        self.details['D'] = ['', None, None]        ## <-----   
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE     
-        self.details['n'] = ['', None, None]        ## <-----   
-
+        ## DEFINE DEFAULT DETAILS
+        self.set_details()      ##DO NOT DELETE OR CHANGE THIS LINE!!!
+        
         ## YOU CAN MODIFY THE LINE BELLOW.MODIFY WORDS BETWEEN """   """  ONLY!!!!
         self.description = """
@@ -111,5 +96,6 @@
         #(Just note: In Python, indentation defines the belongings of 'if', 'for', and so on..)
         input = a * x + b
-        # sph_out and _ are in array from scipy upto n'th order
+        # sph_out and _ are in array types from scipy upto n'th order
+        # where _ is not used for this function.
         sph_out, _ = scipy.special.sph_jn(n, input)
         # Take only n'th value
@@ -117,5 +103,6 @@
 
         return result ## MODIFY ONLY RESULT. DON'T DELETE RETURN!!!!
-    
+
+###############################################################################   
 ## DO NOT MODIFY THE FOLLOWING LINES!!!!!!!!!!!!!!!!       
 if __name__ == "__main__": 
Index: fittingview/src/sans/perspectives/fitting/plugin_models/sum_Ap1_1_Ap2.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/plugin_models/sum_Ap1_1_Ap2.py	(revision 7c8d3093945ee0f295c2b919d7b23f654f80158c)
+++ fittingview/src/sans/perspectives/fitting/plugin_models/sum_Ap1_1_Ap2.py	(revision ed8fa6a3d826d430f1d3968e9cd739c02b2f4627)
@@ -2,5 +2,5 @@
 import copy
 from sans.models.pluginmodel import Model1DPlugin
-# Possible model names
+# Available model names for this sum model
 """
 BCCrystalModel, BEPolyelectrolyte, BarBellModel, BinaryHSModel, BroadPeakModel,
@@ -18,5 +18,5 @@
 TwoLorentzianModel, TwoPowerLawModel, VesicleModel
 """
-## This is DIFFERENT from the Easy Custom Sum(p1 + p2) 
+## This model is DIFFERENT from the Easy Custom Sum(p1 + p2) 
 ## by definition of the scale factor *****************************************
 #
@@ -28,5 +28,5 @@
 
 #####DO NOT CHANGE ANYTHING BELOW THIS LINE 
-#####------------------------------------------------------------------------
+#####---------------------------------------------------------------------------
 class Model(Model1DPlugin):
     """
@@ -379,18 +379,10 @@
                                         ( p_model1.name, p_model2.name )
         self.description += description
-                
+
+### FOR TEST                
 if __name__ == "__main__": 
     m1= Model() 
-    #m1.setParam("p1_scale", 25)  
-    #m1.setParam("p1_length", 1000)
-    #m1.setParam("p2_scale", 100) 
-    #m1.setParam("p2_rg", 100) 
     out1 = m1.runXY(0.01)
-
     m2= Model()
-    #m2.p_model1.setParam("scale", 25) 
-    #m2.p_model1.setParam("length", 1000) 
-    #m2.p_model2.setParam("scale", 100)
-    #m2.p_model2.setParam("rg", 100)
     out2 = 0.5 * m2.p_model1.runXY(0.01) + 0.5 * m2.p_model2.runXY(0.01)
     print "Testing at Q = 0.01:"
Index: fittingview/src/sans/perspectives/fitting/plugin_models/sum_p1_p2.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/plugin_models/sum_p1_p2.py	(revision 7c8d3093945ee0f295c2b919d7b23f654f80158c)
+++ fittingview/src/sans/perspectives/fitting/plugin_models/sum_p1_p2.py	(revision ed8fa6a3d826d430f1d3968e9cd739c02b2f4627)
@@ -2,5 +2,5 @@
 import copy
 from sans.models.pluginmodel import Model1DPlugin
-# Possible model names
+# Available model names for this sum model
 """
 BCCrystalModel, BEPolyelectrolyte, BarBellModel, BinaryHSModel, BroadPeakModel,
@@ -27,5 +27,5 @@
 
 #####DO NOT CHANGE ANYTHING BELOW THIS LINE 
-#####------------------------------------------------------------------------
+#####---------------------------------------------------------------------------
 class Model(Model1DPlugin):
     """
Index: fittingview/src/sans/perspectives/fitting/plugin_models/testmodel.py
===================================================================
--- fittingview/src/sans/perspectives/fitting/plugin_models/testmodel.py	(revision 7c8d3093945ee0f295c2b919d7b23f654f80158c)
+++ fittingview/src/sans/perspectives/fitting/plugin_models/testmodel.py	(revision ed8fa6a3d826d430f1d3968e9cd739c02b2f4627)
@@ -48,17 +48,9 @@
         self.params['C'] = 10.0      ## <-----  
 
-        ## STORING PARAMETERS  [UNIT, MINIMUM VALUE, MAXIMUM VALUE]
-        self.details = {}       ##DO NOT CHANGE THIS LINE!!!
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE    
-        self.details['A'] = ['', -1e16, 1e16]        ## <----- 
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE    
-        self.details['B'] = ['', -1e16, 1e16]         ## <----- 
-        ## YOU CAN MODIFY THE LINE BELLOW.CHANGE WORD BETWEEN ' ',WORD BETWEEN
-        ## ' ', TWO OTHER NUMBERS TO NEW VALUE OR YOU CAN ALSO DELETE TH LINE    
-        self.details['C'] = ['', -1e16, 1e16]         ## <----- 
+        ## DEFINE DEFAULT DETAILS
+        self.set_details()      ##DO NOT DELETE OR CHANGE THIS LINE!!!
+        
         ## YOU CAN MODIFY THE LINE BELLOW.MODIFY WORDS BETWEEN """   """  ONLY!!!!
-        self.description = "F(x)=A+Bcos(2x)+Csin(2x) " ## <----- 
+        self.description = "F(x)=A+Bcos(2x)+Csin(2x) "     ## <----- 
    
     def function(self, x = 0.0):  ##DO NOT CHANGE THIS LINE!!!
