Index: sansmodels/src/sans/models/c_extensions/cylinder.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/cylinder.c	(revision ae3ce4eaa593202ebf49122e196897c0d45a25b6)
+++ sansmodels/src/sans/models/c_extensions/cylinder.c	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -18,15 +18,16 @@
  */
 double cylinder_analytical_1D(CylinderParameters *pars, double q) {
-	double dp[5];
-	
+	double dp[6];
+
 	// Fill paramater array
 	dp[0] = pars->scale;
 	dp[1] = pars->radius;
 	dp[2] = pars->length;
-	dp[3] = pars->contrast;
-	dp[4] = pars->background;
-	
+	dp[3] = pars->sldCyl;
+	dp[4] = pars->sldSolv;
+	dp[5] = pars->background;
+
 	// Call library function to evaluate model
-	return CylinderForm(dp, q);	
+	return CylinderForm(dp, q);
 }
 
@@ -41,5 +42,5 @@
 	q = sqrt(qx*qx+qy*qy);
     return cylinder_analytical_2D_scaled(pars, q, qx/q, qy/q);
-} 
+}
 
 
@@ -53,6 +54,6 @@
 double cylinder_analytical_2D(CylinderParameters *pars, double q, double phi) {
     return cylinder_analytical_2D_scaled(pars, q, cos(phi), sin(phi));
-} 
-        
+}
+
 /**
  * Function to evaluate 2D scattering function
@@ -68,17 +69,17 @@
 	double alpha, vol, cos_val;
 	double answer;
-        
+
     // Cylinder orientation
     cyl_x = sin(pars->cyl_theta) * cos(pars->cyl_phi);
     cyl_y = sin(pars->cyl_theta) * sin(pars->cyl_phi);
     cyl_z = cos(pars->cyl_theta);
-     
+
     // q vector
     q_z = 0;
-        
+
     // Compute the angle btw vector q and the
     // axis of the cylinder
     cos_val = cyl_x*q_x + cyl_y*q_y + cyl_z*q_z;
-    
+
     // The following test should always pass
     if (fabs(cos_val)>1.0) {
@@ -86,30 +87,30 @@
      	return 0;
     }
-    
+
     // Note: cos(alpha) = 0 and 1 will get an
     // undefined value from CylKernel
 	alpha = acos( cos_val );
-	
+
 	// Call the IGOR library function to get the kernel
 	answer = CylKernel(q, pars->radius, pars->length/2.0, alpha) / sin(alpha);
-	
+
 	// Multiply by contrast^2
-	answer *= pars->contrast*pars->contrast;
-	
+	answer *= (pars->sldCyl - pars->sldSolv)*(pars->sldCyl - pars->sldSolv);
+
 	//normalize by cylinder volume
 	//NOTE that for this (Fournet) definition of the integral, one must MULTIPLY by Vcyl
     vol = acos(-1.0) * pars->radius * pars->radius * pars->length;
 	answer *= vol;
-	
+
 	//convert to [cm-1]
 	answer *= 1.0e8;
-	
+
 	//Scale
 	answer *= pars->scale;
-	
+
 	// add in the background
 	answer += pars->background;
-	
+
 	return answer;
 }
-    
+
Index: sansmodels/src/sans/models/c_extensions/cylinder.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/cylinder.h	(revision 27972c1dfdd57a50946a99914051e1713c997e78)
+++ sansmodels/src/sans/models/c_extensions/cylinder.h	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -4,5 +4,5 @@
  * [PYTHONCLASS] = CylinderModel
  * [DISP_PARAMS] = radius, length, cyl_theta, cyl_phi
-   [DESCRIPTION] = <text> f(q)= 2*(scatter_sld - solvent_sld)*V*sin(qLcos(alpha/2))
+   [DESCRIPTION] = <text> f(q)= 2*(sldCyl - sldSolv)*V*sin(qLcos(alpha/2))
 				/[qLcos(alpha/2)]*J1(qRsin(alpha/2))/[qRsin(alpha)]
 
@@ -34,6 +34,9 @@
     double length;
     /// Contrast [1/A^(2)]
-    //  [DEFAULT]=contrast=3.0e-6 [1/A^(2)]
-    double contrast;
+    //  [DEFAULT]=sldCyl=4.0e-6 [1/A^(2)]
+    double sldCyl;
+    /// sldCyl [1/A^(2)]
+    //  [DEFAULT]=sldSolv=1.0e-6 [1/A^(2)]
+    double sldSolv;
 	/// Incoherent Background [1/cm] 0.00
 	//  [DEFAULT]=background=0.0 [1/cm]
Index: sansmodels/src/sans/models/c_extensions/ellipsoid.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/ellipsoid.c	(revision df4702f8a05fd206b1fcf22671fd7d9316a316f3)
+++ sansmodels/src/sans/models/c_extensions/ellipsoid.c	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -44,11 +44,12 @@
  */
 double ellipsoid_analytical_1D(EllipsoidParameters *pars, double q) {
-	double dp[5];
+	double dp[6];
 
 	dp[0] = pars->scale;
 	dp[1] = pars->radius_a;
 	dp[2] = pars->radius_b;
-	dp[3] = pars->contrast;
-	dp[4] = pars->background;
+	dp[3] = pars->sldEll;
+	dp[4] = pars->sldSolv;
+	dp[5] = pars->background;
 
 	return EllipsoidForm(dp, q);
@@ -117,5 +118,5 @@
 
 	// Multiply by contrast^2
-	answer *= pars->contrast*pars->contrast;
+	answer *= (pars->sldEll - pars->sldSolv) * (pars->sldEll - pars->sldSolv);
 
 	//normalize by cylinder volume
Index: sansmodels/src/sans/models/c_extensions/ellipsoid.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/ellipsoid.h	(revision 27972c1dfdd57a50946a99914051e1713c997e78)
+++ sansmodels/src/sans/models/c_extensions/ellipsoid.h	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -9,6 +9,6 @@
  //[PYTHONCLASS] = EllipsoidModel
  //[DISP_PARAMS] = radius_a, radius_b, axis_theta, axis_phi
- //[DESCRIPTION] = <text>"P(q.alpha)= scale*f(q)^(2)+ bkg, where f(q)= 3*(scatter_sld
- //		- scatter_solvent)*V*[sin(q*r(Ra,Rb,alpha))
+ //[DESCRIPTION] = <text>"P(q.alpha)= scale*f(q)^(2)+ bkg, where f(q)= 3*(sld_ell
+ //		- sld_solvent)*V*[sin(q*r(Ra,Rb,alpha))
  //		-q*r*cos(qr(Ra,Rb,alpha))]
  //		/[qr(Ra,Rb,alpha)]^(3)"
@@ -19,6 +19,6 @@
  //		scatter_sld: SLD of the scatter
  //		solvent_sld: SLD of the solvent
- //     contrast: SLD difference between scatter
- //		and solvent
+ //     sldEll: SLD of ellipsoid
+ //		sldSolv: SLD of solvent
  //		V: volune of the Eliipsoid
  //		Ra: radius along the rotation axis
@@ -46,7 +46,11 @@
     double radius_b;
 
-    ///	Contrast [1/A^(2)]
-    //  [DEFAULT]=contrast=3.0e-6 [1/A^(2)]
-    double contrast;
+    ///	sldEll [1/A^(2)]
+    //  [DEFAULT]=sldEll=4.0e-6 [1/A^(2)]
+    double sldEll;
+
+    ///	sld of solvent [1/A^(2)]
+    //  [DEFAULT]=sldSolv=1.0e-6 [1/A^(2)]
+    double sldSolv;
 
 	/// Incoherent Background [1/cm]
Index: sansmodels/src/sans/models/c_extensions/elliptical_cylinder.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/elliptical_cylinder.c	(revision 975ec8e8211549489759b5a5ffe3b60607de065b)
+++ sansmodels/src/sans/models/c_extensions/elliptical_cylinder.c	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -17,5 +17,5 @@
  */
 double elliptical_cylinder_analytical_1D(EllipticalCylinderParameters *pars, double q) {
-	double dp[6];
+	double dp[7];
 
 	// Fill paramater array
@@ -24,6 +24,7 @@
 	dp[2] = pars->r_ratio;
 	dp[3] = pars->length;
-	dp[4] = pars->contrast;
-	dp[5] = pars->background;
+	dp[4] = pars->sldCyl;
+	dp[5] = pars->sldSolv;
+	dp[6] = pars->background;
 
 	// Call library function to evaluate model
@@ -145,5 +146,5 @@
 
 	// Multiply by contrast^2
-	answer *= pars->contrast*pars->contrast;
+	answer *= (pars->sldCyl - pars->sldSolv) * (pars->sldCyl - pars->sldSolv);
 
 	//normalize by cylinder volume
Index: sansmodels/src/sans/models/c_extensions/elliptical_cylinder.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/elliptical_cylinder.h	(revision 27972c1dfdd57a50946a99914051e1713c997e78)
+++ sansmodels/src/sans/models/c_extensions/elliptical_cylinder.h	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -8,5 +8,6 @@
 r_ratio = the ratio of (r_major /r_minor >= 1)
 length = the length of the cylinder
-contrast = SLD of solvent - SLD of the cylinder
+sldCyl = SLD of the cylinder
+sldSolv = SLD of solvent -
 background = incoherent background
   *</text>
@@ -31,7 +32,10 @@
     //  [DEFAULT]=length=400.0 [A]
     double length;
-    /// Contrast [1/A^(2)]
-    //  [DEFAULT]=contrast=3.0e-6 [1/A^(2)]
-    double contrast;
+    /// SLD of cylinder [1/A^(2)]
+    //  [DEFAULT]=sldCyl=4.0e-6 [1/A^(2)]
+    double sldCyl;
+    /// SLD of solvent [1/A^(2)]
+    //  [DEFAULT]=sldSolv=1.0e-6 [1/A^(2)]
+    double sldSolv;
 	/// Incoherent Background [1/cm] 0.000
 	//  [DEFAULT]=background=0 [1/cm]
Index: sansmodels/src/sans/models/c_extensions/flexible_cylinder.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/flexible_cylinder.c	(revision ea070754dad7f17087a33bfe6bf1a95174d93677)
+++ sansmodels/src/sans/models/c_extensions/flexible_cylinder.c	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -18,5 +18,5 @@
  */
 double flexible_cylinder_analytical_1D(FlexibleCylinderParameters *pars, double q) {
-	double dp[6];
+	double dp[7];
 
 	// Fill paramater array
@@ -25,6 +25,7 @@
 	dp[2] = pars->kuhn_length;
 	dp[3] = pars->radius;
-	dp[4] = pars->contrast;
-	dp[5] = pars->background;
+	dp[4] = pars->sldCyl;
+	dp[5] = pars->sldSolv;
+	dp[6] = pars->background;
 
 	// Call library function to evaluate model
Index: sansmodels/src/sans/models/c_extensions/flexible_cylinder.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/flexible_cylinder.h	(revision 27972c1dfdd57a50946a99914051e1713c997e78)
+++ sansmodels/src/sans/models/c_extensions/flexible_cylinder.h	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -31,7 +31,10 @@
     //  [DEFAULT]=radius=20.0 [A]
     double radius;
-    /// Contrast [1/A^(2)]
-    //  [DEFAULT]=contrast=5.3e-6 [1/A^(2)]
-    double contrast;
+    /// SLD of cylinder [1/A^(2)]
+    //  [DEFAULT]=sldCyl=6.3e-6 [1/A^(2)]
+    double sldCyl;
+    /// SLD of solvent [1/A^(2)]
+    //  [DEFAULT]=sldSolv=1.0e-6 [1/A^(2)]
+    double sldSolv;
 	/// Incoherent Background [1/cm]
 	//  [DEFAULT]=background=0.0001 [1/cm]
Index: sansmodels/src/sans/models/c_extensions/hollow_cylinder.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/hollow_cylinder.c	(revision e2afadff3f4263f27adf3503adb9ffba97b1e122)
+++ sansmodels/src/sans/models/c_extensions/hollow_cylinder.c	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -17,5 +17,5 @@
  */
 double hollow_cylinder_analytical_1D(HollowCylinderParameters *pars, double q) {
-	double dp[6];
+	double dp[7];
 
 	dp[0] = pars->scale;
@@ -23,6 +23,7 @@
 	dp[2] = pars->radius;
 	dp[3] = pars->length;
-	dp[4] = pars->contrast;
-	dp[5] = pars->background;
+	dp[4] = pars->sldCyl;
+	dp[5] = pars->sldSolv;
+	dp[6] = pars->background;
 
 	return HollowCylinder(dp, q);
@@ -89,8 +90,11 @@
 	answer = HolCylKernel(q, pars->core_radius, pars->radius, pars->length, cos_val);
 
+	// Multiply by contrast^2
+	answer *= (pars->sldCyl - pars->sldSolv)*(pars->sldCyl - pars->sldSolv);
+
 	//normalize by cylinder volume
-	vol=acos(-1.0)*((pars->core_radius *pars->core_radius)-(pars->radius*pars->radius))
+	vol=acos(-1.0)*((pars->radius*pars->radius)-(pars->core_radius *pars->core_radius))
 			*(pars->length);
-	answer /= vol;
+	answer *= vol;
 
 	//convert to [cm-1]
Index: sansmodels/src/sans/models/c_extensions/hollow_cylinder.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/hollow_cylinder.h	(revision 27972c1dfdd57a50946a99914051e1713c997e78)
+++ sansmodels/src/sans/models/c_extensions/hollow_cylinder.h	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -11,5 +11,6 @@
  //				radius = the radius of shell
  // 			length = the total length of the cylinder
- //				contrast = SLD of solvent - SLD of shell
+ //				sldCyl = SLD of the shell
+ //				sldSolv = SLD of the solvent
  //				background = incoherent background
  //	</text>
@@ -35,7 +36,11 @@
     double length;
 
-    /// Contrast  [1/A^(2)]
-    //  [DEFAULT]=contrast=5.3e-6 [1/A^(2)]
-    double contrast;
+    /// SLD_cylinder  [1/A^(2)]
+    //  [DEFAULT]=sldCyl=6.3e-6 [1/A^(2)]
+    double sldCyl;
+
+    /// SLD_solvent  [1/A^(2)]
+    //  [DEFAULT]=sldSolv=1.0e-6 [1/A^(2)]
+    double sldSolv;
 
 	/// Incoherent Background [1/cm]
Index: sansmodels/src/sans/models/c_extensions/lamellarPS.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/lamellarPS.c	(revision c1c29b67c42e22e8ebe38ed7aacd5a53ec4f66bb)
+++ sansmodels/src/sans/models/c_extensions/lamellarPS.c	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -19,10 +19,10 @@
 LamellarPS_kernel(double dp[], double q)
 {
-	double scale,dd,del,contr,NN,Cp,bkg;		//local variables of coefficient wave
+	double scale,dd,del,sld_bi,sld_sol,contr,NN,Cp,bkg;		//local variables of coefficient wave
 	double inten, qval,Pq,Sq,alpha,temp,t1,t2,t3,dQ;
 	double Pi,Euler,dQDefault,fii;
 	int ii,NNint;
 	Euler = 0.5772156649;		// Euler's constant
-	dQDefault = 0.0;//0.0025;		//[=] 1/A, q-resolution, default value
+	dQDefault = 0.0;		//[=] 1/A, q-resolution, default value
 	dQ = dQDefault;
 
@@ -33,8 +33,11 @@
 	dd = dp[1];
 	del = dp[2];
-	contr = dp[3];
-	NN = trunc(dp[4]);		//be sure that NN is an integer
-	Cp = dp[5];
-	bkg = dp[6];
+	sld_bi = dp[3];
+	sld_sol = dp[4];
+	NN = trunc(dp[5]);		//be sure that NN is an integer
+	Cp = dp[6];
+	bkg = dp[7];
+
+	contr = sld_bi - sld_sol;
 
 	Pq = 2.0*contr*contr/qval/qval*(1.0-cos(qval*del));
@@ -78,5 +81,5 @@
  */
 double lamellarPS_analytical_1D(LamellarPSParameters *pars, double q) {
-	double dp[7];
+	double dp[8];
 
 	// Fill paramater array
@@ -84,8 +87,9 @@
 	dp[1] = pars->spacing;
 	dp[2] = pars->delta;
-	dp[3] = pars->contrast;
-	dp[4] = pars->n_plates;
-	dp[5] = pars->caille;
-	dp[6] = pars->background;
+	dp[3] = pars->sld_bi;
+	dp[4] = pars->sld_sol;
+	dp[5] = pars->n_plates;
+	dp[6] = pars->caille;
+	dp[7] = pars->background;
 
 	// Call library function to evaluate model
Index: sansmodels/src/sans/models/c_extensions/lamellarPS.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/lamellarPS.h	(revision 27972c1dfdd57a50946a99914051e1713c997e78)
+++ sansmodels/src/sans/models/c_extensions/lamellarPS.h	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -21,5 +21,6 @@
 		*Parameters: spacing = repeat spacing,
 		delta = bilayer thickness,
-		contrast = SLD_solvent - SLD_bilayer
+		sld_bi = SLD_bilayer
+		sld_sol = SLD_solvent
 		n_plate = # of Lamellar plates
 		caille = Caille parameter (<0.8 or <1)
@@ -41,7 +42,10 @@
     //  [DEFAULT]=delta=30 [A]
     double delta;
-    /// Contrast [1/A^(2)]
-    //  [DEFAULT]=contrast=5.3e-6 [1/A^(2)]
-    double contrast;
+    /// SLD of bilayer [1/A^(2)]
+    //  [DEFAULT]=sld_bi=6.3e-6 [1/A^(2)]
+    double sld_bi;
+    /// SLD of solvent [1/A^(2)]
+    //  [DEFAULT]=sld_sol=1.0e-6 [1/A^(2)]
+    double sld_sol;
 	 /// Number of lamellar plates
     //  [DEFAULT]=n_plates=20
Index: sansmodels/src/sans/models/c_extensions/parallelepiped.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/parallelepiped.c	(revision 8e36cddc31aee946bb051c6a6d4eade849ca2ed4)
+++ sansmodels/src/sans/models/c_extensions/parallelepiped.c	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -18,5 +18,5 @@
  */
 double parallelepiped_analytical_1D(ParallelepipedParameters *pars, double q) {
-	double dp[6];
+	double dp[7];
 
 	// Fill paramater array
@@ -25,6 +25,7 @@
 	dp[2] = pars->short_b;
 	dp[3] = pars->long_c;
-	dp[4] = pars->contrast;
-	dp[5] = pars->background;
+	dp[4] = pars->sldPipe;
+	dp[5] = pars->sldSolv;
+	dp[6] = pars->background;
 
 	// Call library function to evaluate model
@@ -149,5 +150,5 @@
 
 	// Multiply by contrast^2
-	answer *= pars->contrast*pars->contrast;
+	answer *= (pars->sldPipe - pars->sldSolv) * (pars->sldPipe - pars->sldSolv);
 
 	//normalize by cylinder volume
Index: sansmodels/src/sans/models/c_extensions/parallelepiped.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/parallelepiped.h	(revision 27972c1dfdd57a50946a99914051e1713c997e78)
+++ sansmodels/src/sans/models/c_extensions/parallelepiped.h	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -14,5 +14,6 @@
 		short_b: length of another short edge [A]
 		long_c: length of long edge  of the parallelepiped [A]
-		contrast: particle_sld - solvent_sld
+		sldPipe: Pipe_sld
+		sldSolv: solvent_sld
 		background:Incoherent Background [1/cm]
 		</text>
@@ -35,7 +36,10 @@
     //  [DEFAULT]=long_c=400 [A]
     double long_c;
-    /// Contrast [1/A^(2)]
-    //  [DEFAULT]=contrast=53e-7 [1/A^(2)]
-    double contrast;
+    /// SLD_Pipe [1/A^(2)]
+    //  [DEFAULT]=sldPipe=6.3e-6 [1/A^(2)]
+    double sldPipe;
+    /// sldSolv [1/A^(2)]
+    //  [DEFAULT]=sldSolv=1.0e-6 [1/A^(2)]
+    double sldSolv;
 	/// Incoherent Background [1/cm]
 	//  [DEFAULT]=background=0.0 [1/cm]
Index: sansmodels/src/sans/models/c_extensions/sphere.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/sphere.c	(revision ae3ce4eaa593202ebf49122e196897c0d45a25b6)
+++ sansmodels/src/sans/models/c_extensions/sphere.c	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -17,13 +17,14 @@
 double sphere_analytical_1D(SphereParameters *pars, double q) {
 	double dp[5];
-	
+
 	dp[0] = pars->scale;
 	dp[1] = pars->radius;
-	dp[2] = pars->contrast;
-	dp[3] = pars->background;
-	
+	dp[2] = pars->sldSph;
+	dp[3] = pars->sldSolv;
+	dp[4] = pars->background;
+
 	return SphereForm(dp, q);
 }
-    
+
 /**
  * Function to evaluate 2D scattering function
@@ -37,4 +38,4 @@
 
 double sphere_analytical_2DXY(SphereParameters *pars, double qx, double qy){
-	return sphere_analytical_1D(pars,sqrt(qx*qx+qy*qy));	
+	return sphere_analytical_1D(pars,sqrt(qx*qx+qy*qy));
 }
Index: sansmodels/src/sans/models/c_extensions/sphere.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/sphere.h	(revision 27972c1dfdd57a50946a99914051e1713c997e78)
+++ sansmodels/src/sans/models/c_extensions/sphere.h	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -7,13 +7,11 @@
  //[PYTHONCLASS] = SphereModel
  //[DISP_PARAMS] = radius
- //[DESCRIPTION] =<text>P(q)=(scale/V)*[3V(scatter_sld-solvent_sld)*(sin(qR)-qRcos(qR))
+ //[DESCRIPTION] =<text>P(q)=(scale/V)*[3V(sldSph-sldSolv)*(sin(qR)-qRcos(qR))
  //						/(qR)^3]^(2)+bkg
  //
  //				bkg:background, R: radius of sphere
  //				V:The volume of the scatter
- //				contrast:SLD difference between
- //				scatter and solvent
- //				scatter_sld: the SLD of the scatter
- //				solvent_sld: the SLD of the solvent
+ //				sldSph: the SLD of the sphere
+ //				sldSolv: the SLD of the solvent
  //
  //		</text>
@@ -30,7 +28,11 @@
     double radius;
 
-    ///	Contrast [1/A^(2)]
-    //  [DEFAULT]=contrast= 1.0e-6 [1/A^(2)]
-    double contrast;
+    ///	sldSph [1/A^(2)]
+    //  [DEFAULT]=sldSph= 2.0e-6 [1/A^(2)]
+    double sldSph;
+
+    ///	sldSolv [1/A^(2)]
+    //  [DEFAULT]=sldSolv= 1.0e-6 [1/A^(2)]
+    double sldSolv;
 
 	/// Incoherent Background [1/cm]
Index: sansmodels/src/sans/models/c_extensions/spheroid.c
===================================================================
--- sansmodels/src/sans/models/c_extensions/spheroid.c	(revision 975ec8e8211549489759b5a5ffe3b60607de065b)
+++ sansmodels/src/sans/models/c_extensions/spheroid.c	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -10,5 +10,4 @@
 #include <stdlib.h>
 
-
 /**
  * Function to evaluate 1D scattering function
@@ -18,5 +17,5 @@
  */
 double spheroid_analytical_1D(SpheroidParameters *pars, double q) {
-	double dp[8];
+	double dp[9];
 
 	// Fill paramater array
@@ -26,10 +25,11 @@
 	dp[3] = pars->equat_shell;
 	dp[4] = pars->polar_shell;
-	dp[5] = pars->contrast;
-	dp[6] = pars->sld_solvent;
-	dp[7] = pars->background;
+	dp[5] = pars->sld_core;
+	dp[6] = pars->sld_shell;
+	dp[7] = pars->sld_solvent;
+	dp[8] = pars->background;
 
 	// Call library function to evaluate model
-	return ProlateForm(dp, q);
+	return OblateForm(dp, q);
 }
 
@@ -73,4 +73,5 @@
 	double answer;
 	double Pi = 4.0*atan(1.0);
+	double sldcs,sldss;
 
     // ellipsoid orientation, the axis of the rotation is consistent with the ploar axis.
@@ -78,4 +79,7 @@
     cyl_y = sin(pars->axis_theta) * sin(pars->axis_phi);
     cyl_z = cos(pars->axis_theta);
+    //del sld
+    sldcs = pars->sld_core - pars->sld_shell;
+    sldss = pars->sld_shell- pars->sld_solvent;
 
     // q vector
@@ -96,11 +100,11 @@
 	alpha = acos( cos_val );
 
-	// Call the IGOR library function to get the kernel
-	answer = gfn4(cos_val,pars->equat_core,pars->polar_core,pars->equat_shell,pars->polar_shell,pars->contrast,pars->sld_solvent,q);
-
+	// Call the IGOR library function to get the kernel: MUST use gfn4 not gf2 because of the def of params.
+	answer = gfn4(cos_val,pars->equat_core,pars->polar_core,pars->equat_shell,pars->polar_shell,sldcs,sldss,q);
+	//It seems that it should be normalized somehow. How???
 
 	//normalize by cylinder volume
 	//NOTE that for this (Fournet) definition of the integral, one must MULTIPLY by Vcyl
-    vol = 4*Pi/3*pars->equat_shell*pars->equat_shell*pars->polar_shell;
+    vol = 4.0*Pi/3.0*pars->equat_shell*pars->equat_shell*pars->polar_shell;
 	answer /= vol;
 
Index: sansmodels/src/sans/models/c_extensions/spheroid.h
===================================================================
--- sansmodels/src/sans/models/c_extensions/spheroid.h	(revision 27972c1dfdd57a50946a99914051e1713c997e78)
+++ sansmodels/src/sans/models/c_extensions/spheroid.h	(revision f10063e8f3c53d2be93abaea9c0d3d4f3061d444)
@@ -15,5 +15,6 @@
 			equat_shell = equatorial radius of shell,
 			polar_shell = polar radius (revolution axis) of shell,
-			contrast = SLD_core - SLD_shell
+			sld_core = SLD_core
+			sld_shell = SLD_shell
 			sld_solvent = SLD_solvent
 			background = Incoherent bkg
@@ -45,7 +46,10 @@
     //  [DEFAULT]=polar_shell=30.0 [A]
     double polar_shell;
-    ///  Scattering contrast [1/A^(2)]
-    //  [DEFAULT]=contrast=1.0e-6 [1/A^(2)]
-    double contrast;
+    ///  Core scattering length density [1/A^(2)]
+    //  [DEFAULT]=sld_core=2.0e-6 [1/A^(2)]
+    double sld_core;
+    ///  Shell scattering length density [1/A^(2)]
+    //  [DEFAULT]=sld_shell=1.0e-6 [1/A^(2)]
+    double sld_shell;
 	/// Solvent scattering length density  [1/A^(2)]
     //  [DEFAULT]=sld_solvent=6.3e-6 [1/A^(2)]
