Index: sansmodels/src/sans/models/BEPolyelectrolyte.py
===================================================================
--- sansmodels/src/sans/models/BEPolyelectrolyte.py	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
+++ sansmodels/src/sans/models/BEPolyelectrolyte.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -72,5 +72,6 @@
         self.details['c']    = ['mol/L', None, None]
         self.details['background'] = ['cm-1', None, None]
-       
+        #list of parameter that cannot be fitted
+        self.fixed= []
                
     def _BEPoly(self, x):
Index: sansmodels/src/sans/models/BaseComponent.py
===================================================================
--- sansmodels/src/sans/models/BaseComponent.py	(revision 5f89fb8ae648ff087d5c5e56da48d080e404bbf9)
+++ sansmodels/src/sans/models/BaseComponent.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -6,5 +6,6 @@
 # imports   
 import copy
-   
+#TO DO: that about a way to make the parameter
+#is self return if it is fittable or not  
 class BaseComponent:
     """ 
@@ -29,4 +30,6 @@
         #of the given model, exception or possible use
         self.description=''
+        #list of parameter that cannot be fitted
+        self.fixed= []
            
     def __str__(self):
@@ -35,4 +38,9 @@
         """
         return self.name
+   
+    def is_fittable(self, par_name):
+        return par_name.lower() not in self.fixed
+        #For the future
+        #return self.params['par_name'].is_fittable()
    
     def run(self, x): return NotImplemented
Index: sansmodels/src/sans/models/Constant.py
===================================================================
--- sansmodels/src/sans/models/Constant.py	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
+++ sansmodels/src/sans/models/Constant.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -25,5 +25,6 @@
         self.details['value'] = ['', None, None]
         self.params['value'] = 1.0
-   
+        #list of parameter that cannot be fitted
+        self.fixed= []
     def clone(self):
         """ Return a identical copy of self """
Index: sansmodels/src/sans/models/CoreShellCylinderModel.py
===================================================================
--- sansmodels/src/sans/models/CoreShellCylinderModel.py	(revision 95986b51aaa51d5bcecf55fc1d098074999e593b)
+++ sansmodels/src/sans/models/CoreShellCylinderModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -84,5 +84,10 @@
         self.details['axis_theta'] = ['rad', None, None]
         self.details['axis_phi'] = ['rad', None, None]
-
+        # fixed paramaters
+        self.fixed=['axis_phi.npts','axis_phi.nsigmas',
+				    'axis_theta.npts','axis_theta.nsigmas',
+				    'length.npts','length.nsigmas',
+				    'radius.npts','radius.nsigmas',
+				    'thickness.npts','thickness.nsigmas' ]
    
     def clone(self):
Index: sansmodels/src/sans/models/CoreShellModel.py
===================================================================
--- sansmodels/src/sans/models/CoreShellModel.py	(revision 95986b51aaa51d5bcecf55fc1d098074999e593b)
+++ sansmodels/src/sans/models/CoreShellModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -61,5 +61,6 @@
         self.details['solvent_sld'] = ['A-2', None, None]
         self.details['background'] = ['cm-1', None, None]
-
+        
+        self.fixed = ['radius.npts','radius.nsigmas','thickness.npts','thickness.nsigmas']
    
     def clone(self):
Index: sansmodels/src/sans/models/CylinderModel.py
===================================================================
--- sansmodels/src/sans/models/CylinderModel.py	(revision 95986b51aaa51d5bcecf55fc1d098074999e593b)
+++ sansmodels/src/sans/models/CylinderModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -70,5 +70,7 @@
         self.details['cyl_theta'] = ['rad', None, None]
         self.details['cyl_phi'] = ['rad', None, None]
-
+        # fixed parameters
+        self.fixed = ['cyl_phi.npts','cyl_phi.nsigmas','cyl_theta.npts','cyl_theta.nsigmas',
+					  'length.npts','length.nsigmas','radius.npts','radius.nsigmas'] 
    
     def clone(self):
Index: sansmodels/src/sans/models/DABModel.py
===================================================================
--- sansmodels/src/sans/models/DABModel.py	(revision 753552deaf623db88a6a66594458b14c4e0cc6f7)
+++ sansmodels/src/sans/models/DABModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -46,5 +46,6 @@
         self.details['scale']             = ['', None, None]
         self.details['background']        = ['', None, None]
-               
+        #list of parameter that cannot be fitted
+        self.fixed= []      
     def _DAB(self, x):
         """
Index: sansmodels/src/sans/models/DebyeModel.py
===================================================================
--- sansmodels/src/sans/models/DebyeModel.py	(revision 96672c05d2a444bfc0ce599c2ae50b1825f6e049)
+++ sansmodels/src/sans/models/DebyeModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -51,5 +51,6 @@
         self.details['scale']      = ['', None, None]
         self.details['background'] = ['', None, None]
-               
+        #list of parameter that cannot be fitted
+        self.fixed= []      
     def _debye(self, x):
         """
Index: sansmodels/src/sans/models/DisperseModel.py
===================================================================
--- sansmodels/src/sans/models/DisperseModel.py	(revision 5f89fb8ae648ff087d5c5e56da48d080e404bbf9)
+++ sansmodels/src/sans/models/DisperseModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -41,4 +41,6 @@
         self.model = model
         self.description=''
+        #list of parameter that cannot be fitted
+        self.fixed= []
     def clone(self):
         """ Return a identical copy of self """
Index: sansmodels/src/sans/models/EllipsoidModel.py
===================================================================
--- sansmodels/src/sans/models/EllipsoidModel.py	(revision 95986b51aaa51d5bcecf55fc1d098074999e593b)
+++ sansmodels/src/sans/models/EllipsoidModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -69,5 +69,9 @@
         self.details['axis_theta'] = ['rad', None, None]
         self.details['axis_phi'] = ['rad', None, None]
-
+        # fixed paramaters
+        self.fixed=['axis_phi.npts','axis_phi.nsigmas',
+				    'axis_theta.npts','axis_theta.nsigmas',
+				    'radius_a.npts','radius_a.nsigmas',
+				    'radius_b.npts','radius_b.nsigmas' ]
    
     def clone(self):
Index: sansmodels/src/sans/models/EllipticalCylinderModel.py
===================================================================
--- sansmodels/src/sans/models/EllipticalCylinderModel.py	(revision 95986b51aaa51d5bcecf55fc1d098074999e593b)
+++ sansmodels/src/sans/models/EllipticalCylinderModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -65,5 +65,11 @@
         self.details['cyl_phi'] = ['rad', None, None]
         self.details['cyl_psi'] = ['rad', None, None]
-
+        # fixed paramaters
+        self.fixed=['cyl_phi.npts','cyl_phi.nsigmas',
+				    'cyl_psi.npts','cyl_phi.nsigmas',
+				    'cyl_theta.npts','cyl_theta.nsigmas',
+				    'length.npts','length.nsigmas',
+				    'r_minor.npts','r_miror.nsigmas',
+				    'r_ratio.npts','r_ratio.nsigmas' ]
    
     def clone(self):
Index: sansmodels/src/sans/models/Gaussian.py
===================================================================
--- sansmodels/src/sans/models/Gaussian.py	(revision 95986b51aaa51d5bcecf55fc1d098074999e593b)
+++ sansmodels/src/sans/models/Gaussian.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -53,5 +53,6 @@
         self.details['sigma'] = ['', None, None]
         self.details['center'] = ['', None, None]
-
+        #list of parameter that cannot be fitted
+        self.fixed= []
    
     def clone(self):
Index: sansmodels/src/sans/models/GuinierModel.py
===================================================================
--- sansmodels/src/sans/models/GuinierModel.py	(revision 922b0d1ce3e44d911c7ead1dfbd74d61a05f6b14)
+++ sansmodels/src/sans/models/GuinierModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -41,5 +41,6 @@
         self.details['scale'] = ['cm-1', None, None]
         self.details['rg']    = ['A', None, None]
-               
+        #list of parameter that cannot be fitted
+        self.fixed= []  
     def _guinier(self, x):
         return self.params['scale'] * math.exp( -(self.params['rg']*x)**2 / 3.0 )  
Index: sansmodels/src/sans/models/LineModel.py
===================================================================
--- sansmodels/src/sans/models/LineModel.py	(revision 9696b0754e63b0988a5dd04c9fc5f3d1342fd61b)
+++ sansmodels/src/sans/models/LineModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -37,5 +37,6 @@
         self.details['A'] = ['', None, None]
         self.details['B'] = ['', None, None]
-               
+        # fixed paramaters
+        self.fixed=[]
     def _line(self, x):
         """
Index: sansmodels/src/sans/models/LorentzModel.py
===================================================================
--- sansmodels/src/sans/models/LorentzModel.py	(revision 753552deaf623db88a6a66594458b14c4e0cc6f7)
+++ sansmodels/src/sans/models/LorentzModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -45,5 +45,6 @@
         self.details['scale']      = ['', None, None]
         self.details['background'] = ['cm-1', None, None]
-               
+        #list of parameter that cannot be fitted
+        self.fixed= []      
     def _lorentz(self, x):
         """
Index: sansmodels/src/sans/models/Lorentzian.py
===================================================================
--- sansmodels/src/sans/models/Lorentzian.py	(revision 95986b51aaa51d5bcecf55fc1d098074999e593b)
+++ sansmodels/src/sans/models/Lorentzian.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -53,5 +53,6 @@
         self.details['gamma'] = ['', None, None]
         self.details['center'] = ['', None, None]
-
+        #list of parameter that cannot be fitted
+        self.fixed= []
    
     def clone(self):
Index: sansmodels/src/sans/models/NewCylinderModel.py
===================================================================
--- sansmodels/src/sans/models/NewCylinderModel.py	(revision 8809e4829d357a9366a256b3595b75252de8b2c2)
+++ sansmodels/src/sans/models/NewCylinderModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -68,5 +68,6 @@
         self.details['cyl_theta'] = ['rad', None, None]
         self.details['cyl_phi'] = ['rad', None, None]
-
+        #list of parameter that cannot be fitted
+        self.fixed= []
         # The C models have a self.params dictionary
         for item in self.params:
Index: sansmodels/src/sans/models/PorodModel.py
===================================================================
--- sansmodels/src/sans/models/PorodModel.py	(revision 753552deaf623db88a6a66594458b14c4e0cc6f7)
+++ sansmodels/src/sans/models/PorodModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -35,5 +35,6 @@
         self.details['scale']      = ['', None, None]
         self.details['background'] = ['', None, None]
-      
+        #list of parameter that cannot be fitted
+        self.fixed= []
                
     def _porod(self, x):
Index: sansmodels/src/sans/models/PowerLawModel.py
===================================================================
--- sansmodels/src/sans/models/PowerLawModel.py	(revision 753552deaf623db88a6a66594458b14c4e0cc6f7)
+++ sansmodels/src/sans/models/PowerLawModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -46,5 +46,6 @@
         self.details['scale']       = ['', None, None]
         self.details['background']  = ['', None, None]
-               
+        #list of parameter that cannot be fitted
+        self.fixed= []    
     def _PowerLaw(self, x):
         """
Index: sansmodels/src/sans/models/Sin.py
===================================================================
--- sansmodels/src/sans/models/Sin.py	(revision 753552deaf623db88a6a66594458b14c4e0cc6f7)
+++ sansmodels/src/sans/models/Sin.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -23,5 +23,6 @@
         ## Parameter details [units, min, max]
         self.details = {}
-   
+        #list of parameter that cannot be fitted
+        self.fixed= []
     def clone(self):
         """ Return a identical copy of self """
Index: sansmodels/src/sans/models/SphereModel.py
===================================================================
--- sansmodels/src/sans/models/SphereModel.py	(revision 95986b51aaa51d5bcecf55fc1d098074999e593b)
+++ sansmodels/src/sans/models/SphereModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -61,5 +61,6 @@
         self.details['contrast'] = ['A-2', None, None]
         self.details['background'] = ['cm-1', None, None]
-
+        # Fixed parameters
+        self.fixed = ['radius.npts','radius.nsigmas']
    
     def clone(self):
Index: sansmodels/src/sans/models/TeubnerStreyModel.py
===================================================================
--- sansmodels/src/sans/models/TeubnerStreyModel.py	(revision 753552deaf623db88a6a66594458b14c4e0cc6f7)
+++ sansmodels/src/sans/models/TeubnerStreyModel.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -51,5 +51,6 @@
         self.details['scale'] = ['', None, None]
         self.details['background']   = ['', None, None]
-    
+        #list of parameter that cannot be fitted
+        self.fixed= []
                
     def _TeubnerStrey(self, x):
Index: sansmodels/src/sans/models/dispersion_models.py
===================================================================
--- sansmodels/src/sans/models/dispersion_models.py	(revision 0f5bc9ff2027432913fd8d2cb067675244acdaf6)
+++ sansmodels/src/sans/models/dispersion_models.py	(revision 988130c6c44dbbe2fa0a64fe25885c9c67a14480)
@@ -43,4 +43,6 @@
 """
 import sans_extension.c_models as c_models 
+
+
 
 class DispersionModel:
@@ -97,4 +99,5 @@
         
         c_models.set_dispersion_weights(self.cdisp, values, weights)
+ 
+models = {GaussianDispersion:"GaussianModel", ArrayDispersion:"MyModel"}       
         
-        
