Index: sansmodels/src/sans/models/LamellarFFHGModel.py
===================================================================
--- sansmodels/src/sans/models/LamellarFFHGModel.py	(revision 34c30203f24453aa528815f48e84a90b0bbd95be)
+++ sansmodels/src/sans/models/LamellarFFHGModel.py	(revision b4679dee5e210d6a4a960aa3eada337f6dbac554)
@@ -52,9 +52,12 @@
         self.name = "LamellarFFHGModel"
         ## Model description
-        self.description ="""
-		NOTE: The total bilayer thickness = 2(h_thickness + t_length)
-		The meaning of the multiplicative scale factor is not well-defined, but should be on the
-		order of the volume fraction of solution occupied by the lamellar crystallites. Please see
-		the original references for clarification."""
+        self.description =""" Parameters: t_length = tail length, h_thickness = head thickness,
+		scale = Scale factor,
+		background = incoherent Background
+		sld_tail = tail scattering length density ,
+		sld_solvent = solvent scattering length density.
+		NOTE: The total bilayer thickness
+		= 2(h_thickness+ t_length).
+		"""
        
 		## Parameter details [units, min, max]
Index: sansmodels/src/sans/models/LamellarModel.py
===================================================================
--- sansmodels/src/sans/models/LamellarModel.py	(revision 34c30203f24453aa528815f48e84a90b0bbd95be)
+++ sansmodels/src/sans/models/LamellarModel.py	(revision b4679dee5e210d6a4a960aa3eada337f6dbac554)
@@ -50,7 +50,13 @@
         self.name = "LamellarModel"
         ## Model description
-        self.description =""" I(q)= 2*pi*P(q)/(delta *q^(2))
-		where:
-		P(q)=2*(contrast/q)^(2)*(1-cos(q*delta)*e^(1/2*(q*sigma)^(2))"""
+        self.description ="""[Dilute Lamellar Form Factor](from a lyotropic lamellar phase)
+		I(q)= 2*pi*P(q)/(delta *q^(2)), where
+		P(q)=2*(contrast/q)^(2)*(1-cos(q*delta)
+		*e^(1/2*(q*sigma)^(2)).
+		delta = bilayer thickness
+		sigma = variation in bilayer thickness
+		= delta*polydispersity
+		contrast = SLD_solvent - SLD_bilayer
+		Note: the polydispersity in delta is included."""
        
 		## Parameter details [units, min, max]
@@ -63,5 +69,5 @@
 
 		## fittable parameters
-        self.fixed=['delta.width']
+        self.fixed=[]
         
         ## parameters with orientation
Index: sansmodels/src/sans/models/VesicleModel.py
===================================================================
--- sansmodels/src/sans/models/VesicleModel.py	(revision 2c4b289dd897e67655e7c208484ad09f086d1094)
+++ sansmodels/src/sans/models/VesicleModel.py	(revision b4679dee5e210d6a4a960aa3eada337f6dbac554)
@@ -51,12 +51,10 @@
         self.name = "VesicleModel"
         ## Model description
-        self.description ="""
-		Model parameters:
-		scale : scale factor
-		core_radius : Core radius of the vesicle
+        self.description ="""Model parameters:  core_radius : Core radius of the vesicle
 		thickness: shell thickness
 		core_sld: core scattering length density
 		shell_sld: shell scattering length density
-		background: incoherent background"""
+		background: incoherent background
+		scale : scale factor"""
        
 		## Parameter details [units, min, max]
@@ -70,5 +68,5 @@
 
 		## fittable parameters
-        self.fixed=['core_radius.width']
+        self.fixed=['core_radius.width', 'thickness.width']
         
         ## parameters with orientation
Index: sansmodels/src/sans/models/c_extensions/lamellarFF_HG.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/lamellarFF_HG.c	(revision 34c30203f24453aa528815f48e84a90b0bbd95be)
+++ sansmodels/src/sans/models/c_extensions/lamellarFF_HG.c	(revision b4679dee5e210d6a4a960aa3eada337f6dbac554)
@@ -19,5 +19,5 @@
 double lamellarFF_HG_analytical_1D(LamellarFF_HGParameters *pars, double q) {
 	double dp[7];
-	
+
 	// Fill paramater array
 	dp[0] = pars->scale;
@@ -28,17 +28,13 @@
 	dp[5] = pars->sld_solvent;
 	dp[6] = pars->background;
-	
+
 	// Call library function to evaluate model
-	return LamellarFF_HG(dp, q);	
+	return LamellarFF_HG(dp, q);
 }
 
 double lamellarFF_HG_analytical_2D(LamellarFF_HGParameters *pars, double q, double phi){
-	return 1.0;
+	return lamellarFF_HG_analytical_1D(pars,q);
 }
 double lamellarFF_HG_analytical_2DXY(LamellarFF_HGParameters *pars, double qx, double qy){
-	return 1.0;
+	return lamellarFF_HG_analytical_1D(pars,sqrt(qx*qx+qy*qy));
 }
-double lamellarFF_HG_analytical_2D_scaled(LamellarFF_HGParameters *pars, double q, double q_x, double q_y){
-	return 1.0;
-}
-
Index: sansmodels/src/sans/models/c_extensions/lamellarFF_HG.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/lamellarFF_HG.h	(revision 34c30203f24453aa528815f48e84a90b0bbd95be)
+++ sansmodels/src/sans/models/c_extensions/lamellarFF_HG.h	(revision b4679dee5e210d6a4a960aa3eada337f6dbac554)
@@ -4,12 +4,15 @@
  * [PYTHONCLASS] = LamellarFFHGModel
  * [DISP_PARAMS] =  t_length, h_thickness
-   [DESCRIPTION] = <text> 
-					NOTE: The total bilayer thickness = 2(h_thickness + t_length)
-					The meaning of the multiplicative scale factor is not well-defined, but should be on the
-					order of the volume fraction of solution occupied by the lamellar crystallites. Please see
-					the original references for clarification.
-				   </text>
+   [DESCRIPTION] = <text> Parameters: t_length = tail length, h_thickness = head thickness,
+			scale = Scale factor,
+			background = incoherent Background
+			sld_tail = tail scattering length density ,
+			sld_solvent = solvent scattering length density.
+			NOTE: The total bilayer thickness
+			= 2(h_thickness+ t_length).
+
+	</text>
 	[FIXED]= t_length.width, h_thickness.width
-	[ORIENTATION_PARAMS]= 
+	[ORIENTATION_PARAMS]=
  **/
 typedef struct {
@@ -20,14 +23,14 @@
     //  [DEFAULT]=t_length=15.0 [A]
     double t_length;
-    /// head thickness 
+    /// head thickness
     //  [DEFAULT]=h_thickness=10.0 [A]
     double h_thickness;
-	/// tail scrattering density length[1/A²]
+	/// tail scrattering length density[1/A²]
     //  [DEFAULT]=sld_tail=4e-7 [1/A²]
     double sld_tail;
-    /// head group scrattering density length[1/A²]
+    /// head group scrattering length density[1/A²]
     //  [DEFAULT]=sld_head=3e-6 [1/A²]
     double sld_head;
-	 /// solvent scrattering density length[1/A²]
+	 /// solvent scrattering length density[1/A²]
     //  [DEFAULT]=sld_solvent=6e-6 [1/A²]
     double sld_solvent;
@@ -35,5 +38,5 @@
 	//  [DEFAULT]=background=0.0 [1/cm]
 	double background;
-   
+
 } LamellarFF_HGParameters;
 
@@ -46,5 +49,4 @@
 double lamellarFF_HG_analytical_2D(LamellarFF_HGParameters *pars, double q, double phi);
 double lamellarFF_HG_analytical_2DXY(LamellarFF_HGParameters *pars, double qx, double qy);
-double lamellarFF_HG_analytical_2D_scaled(LamellarFF_HGParameters *pars, double q, double q_x, double q_y);
 
 #endif
Index: sansmodels/src/sans/models/c_extensions/lamellarPS.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/lamellarPS.c	(revision 27a0771a6ddbafb74959fa451e80b17dcd5ca5ed)
+++ sansmodels/src/sans/models/c_extensions/lamellarPS.c	(revision b4679dee5e210d6a4a960aa3eada337f6dbac554)
@@ -19,5 +19,5 @@
 double lamellarPS_analytical_1D(LamellarPSParameters *pars, double q) {
 	double dp[8];
-	
+
 	// Fill paramater array
 	dp[0] = pars->scale;
@@ -31,5 +31,5 @@
 
 	// Call library function to evaluate model
-	return LamellarPS(dp, q);	
+	return LamellarPS(dp, q);
 }
 /**
@@ -42,6 +42,6 @@
 	double q;
 	q = sqrt(qx*qx+qy*qy);
-    return lamellarPS_analytical_2D_scaled(pars, q, qx/q, qy/q);
-} 
+    return lamellarPS_analytical_1D(pars, q);
+}
 
 
@@ -54,7 +54,7 @@
  */
 double lamellarPS_analytical_2D(LamellarPSParameters *pars, double q, double phi) {
-    return lamellarPS_analytical_2D_scaled(pars, q, cos(phi), sin(phi));
-} 
-        
+    return lamellarPS_analytical_1D(pars,q);
+}
+
 /**
  * Function to evaluate 2D scattering function
@@ -65,8 +65,4 @@
  * @return: function value
  */
-double lamellarPS_analytical_2D_scaled(LamellarPSParameters *pars, double q, double q_x, double q_y) {
-	
-	return 1.0;
-}
-    
 
+
Index: sansmodels/src/sans/models/c_extensions/lamellarPS.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/lamellarPS.h	(revision 27a0771a6ddbafb74959fa451e80b17dcd5ca5ed)
+++ sansmodels/src/sans/models/c_extensions/lamellarPS.h	(revision b4679dee5e210d6a4a960aa3eada337f6dbac554)
@@ -7,8 +7,25 @@
 /** Structure definition for concentrated lamellar form factor parameters
  * [PYTHONCLASS] = LamellarPSModel
- * [DISP_PARAMS] = delta
-   [DESCRIPTION] = <text> Calculates the scattered intensity from a lyotropic lamellar phase</text>
-   [FIXED]= delta.with
-   [ORIENTATION_PARAMS]= 
+ * [DISP_PARAMS] = spacing
+   [DESCRIPTION] = <text>Calculates the scattered intensity from a lyotropic lamellar phase.
+	   The intensity (form factor and structure factor)
+		calculated is for lamellae of uniform scattering
+		length density that are randomly distributed in
+		solution (a powder average). The lamellae
+		thickness is polydisperse. The model can also
+		be applied to large, multi-lamellar vesicles.
+		No resolution smeared version is included
+		in the structure factor of this model.
+		*Parameters: spacing = repeat spacing,
+		delta = bilayer thickness,
+		sigma = variation in bilayer thickness
+		contrast = SLD_solvent - SLD_bilayer
+		n_plate = # of Lamellar plates
+		caille = Caille parameter (<0.8 or <1)
+		background = incoherent bgd
+		scale = scale factor
+</text>
+   [FIXED]= spacing.with
+   [ORIENTATION_PARAMS]=
 
  **/
@@ -35,8 +52,8 @@
     //  [DEFAULT]=caille=0.1
     double caille;
-	/// Incoherent Background [1/cm] 
+	/// Incoherent Background [1/cm]
 	//  [DEFAULT]=background=0.0 [1/cm]
 	double background;
-   
+
 } LamellarPSParameters;
 
@@ -49,5 +66,4 @@
 double lamellarPS_analytical_2D(LamellarPSParameters *pars, double q, double phi);
 double lamellarPS_analytical_2DXY(LamellarPSParameters *pars, double qx, double qy);
-double lamellarPS_analytical_2D_scaled(LamellarPSParameters *pars, double q, double q_x, double q_y);
 
 #endif
Index: sansmodels/src/sans/models/c_models/flexiblecylinder.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/flexiblecylinder.cpp	(revision 2cc633bae7266a8ade40cec768899907446f505e)
+++ sansmodels/src/sans/models/c_models/flexiblecylinder.cpp	(revision b4679dee5e210d6a4a960aa3eada337f6dbac554)
@@ -61,5 +61,5 @@
 	dp[3] = radius();
 	dp[4] = contrast();
-	dp[5] = background();
+	dp[5] = 0.0;
 
 	// Get the dispersion points for the length
Index: sansmodels/src/sans/models/c_models/lamellarFF_HG.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/lamellarFF_HG.cpp	(revision 34c30203f24453aa528815f48e84a90b0bbd95be)
+++ sansmodels/src/sans/models/c_models/lamellarFF_HG.cpp	(revision b4679dee5e210d6a4a960aa3eada337f6dbac554)
@@ -62,5 +62,5 @@
 	dp[4] = sld_head();
 	dp[5] = sld_solvent();
-	dp[6] = background();
+	dp[6] = 0.0;
 
 	// Get the dispersion points for the tail length
@@ -86,5 +86,5 @@
 			norm += weights_t_length[i].weight* weights_h_thickness[j].weight;
 		}
-				
+
 	}
 	return sum/norm + background();
@@ -99,43 +99,6 @@
 
 double LamellarFFHGModel :: operator()(double qx, double qy) {
-	LamellarFF_HGParameters dp;
-
-	// Fill parameter array for IGOR library
-	// Add the background after averaging
-	dp.scale = scale();
-	dp.t_length = t_length();
-	dp.h_thickness = h_thickness();
-	dp.sld_tail = sld_tail();
-	dp.sld_head = sld_head();
-	dp.sld_solvent = sld_solvent();
-	dp.background = background();
-
-
-	// Get the dispersion points for the tail length
-	vector<WeightPoint> weights_t_length;
-	t_length.get_weights(weights_t_length);
-
-	// Get the dispersion points for the head thickness
-	vector<WeightPoint> weights_h_thickness;
-	h_thickness.get_weights(weights_h_thickness);
-
-	// Perform the computation, with all weight points
-	double sum = 0.0;
-	double norm = 0.0;
-
-	// Loop over detla  weight points
-	for(int i=0; i< (int)weights_t_length.size(); i++) {
-		dp.t_length = weights_t_length[i].value;
-
-		for(int j=0; j< (int)weights_h_thickness.size(); j++) {
-			dp.h_thickness = weights_h_thickness[j].value;
-
-			sum += weights_t_length[i].weight* weights_h_thickness[j].weight
-				* lamellarFF_HG_analytical_2DXY(&dp, qx, qy);
-			norm += weights_t_length[i].weight* weights_h_thickness[j].weight;
-		}
-				
-	}
-	return sum/norm + background();
+	double q = sqrt(qx*qx + qy*qy);
+	return (*this).operator()(q);
 }
 
@@ -148,6 +111,4 @@
  */
 double LamellarFFHGModel :: evaluate_rphi(double q, double phi) {
-	double qx = q*cos(phi);
-	double qy = q*sin(phi);
-	return (*this).operator()(qx, qy);
+	return (*this).operator()(q);
 }
Index: sansmodels/src/sans/models/c_models/lamellarPS.cpp
===================================================================
--- sansmodels/src/sans/models/c_models/lamellarPS.cpp	(revision 27a0771a6ddbafb74959fa451e80b17dcd5ca5ed)
+++ sansmodels/src/sans/models/c_models/lamellarPS.cpp	(revision b4679dee5e210d6a4a960aa3eada337f6dbac554)
@@ -35,8 +35,10 @@
 LamellarPSModel :: LamellarPSModel() {
 	scale      = Parameter(1.0);
-	spacing    = Parameter(400.0);
-	delta     = Parameter(30.0, true);
+	spacing    = Parameter(400.0, true);
+	spacing.set_min(0.0);
+	delta     = Parameter(30.0);
 	delta.set_min(0.0);
-	sigma    = Parameter(0.15, true);
+	sigma    = Parameter(0.15);
+	sigma.set_min(0.0);
 	contrast   = Parameter(5.3e-6);
 	n_plates     = Parameter(20.0);
@@ -64,22 +66,22 @@
 	dp[5] = n_plates();
 	dp[6] = caille();
-	dp[7] = background();
-	
+	dp[7] = 0.0;
+
 
 	// Get the dispersion points for (delta) thickness
-	vector<WeightPoint> weights_delta;
-	delta.get_weights(weights_delta);
-	
+	vector<WeightPoint> weights_spacing;
+	spacing.get_weights(weights_spacing);
+
 	// Perform the computation, with all weight points
 	double sum = 0.0;
 	double norm = 0.0;
-	
+
 	// Loop over short_edgeA weight points
-	for(int i=0; i< (int)weights_delta.size(); i++) {
-		dp[2] = weights_delta[i].value;
+	for(int i=0; i< (int)weights_spacing.size(); i++) {
+		dp[1] = weights_spacing[i].value;
 
-		sum += weights_delta[i].weight * LamellarPS(dp, q);
-		norm += weights_delta[i].weight;
-				
+		sum += weights_spacing[i].weight * LamellarPS(dp, q);
+		norm += weights_spacing[i].weight;
+
 	}
 	return sum/norm + background();
@@ -92,35 +94,7 @@
  */
 double LamellarPSModel :: operator()(double qx, double qy) {
-	LamellarPSParameters dp;
-	// Fill parameter array
-	dp.scale      = scale();
-	dp.spacing   = spacing();
-	dp.delta  = delta();
-	dp.sigma = sigma();
-	dp.contrast   = contrast();
-	dp.n_plates = n_plates();
-	dp.caille = caille();
-	dp.background    = background();
-	
-
-	// Get the dispersion points for the delta
-	vector<WeightPoint> weights_delta;
-	delta.get_weights(weights_delta);
-
-	// Perform the computation, with all weight points
-	double sum = 0.0;
-	double norm = 0.0;
-
-	// Loop over radius weight points
-	for(int i=0; i< (int)weights_delta.size(); i++) {
-		dp.delta = weights_delta[i].value;
-
-		sum += weights_delta[i].weight *lamellarPS_analytical_2DXY(&dp, qx, qy);	
-		norm += weights_delta[i].weight;	
-	}
-	
-	return sum/norm + background();
+	double q = sqrt(qx*qx + qy*qy);
+	return (*this).operator()(q);
 }
-
 
 /**
@@ -132,6 +106,4 @@
  */
 double LamellarPSModel :: evaluate_rphi(double q, double phi) {
-	double qx = q*cos(phi);
-	double qy = q*sin(phi);
-	return (*this).operator()(qx, qy);
+	return (*this).operator()(q);
 }
