Index: example/sesans_parameters_css-hs.py
===================================================================
--- example/sesans_parameters_css-hs.py	(revision 84db7a50ae40a38a16b4f9c6430e31c26f8407f4)
+++ example/sesans_parameters_css-hs.py	(revision 3415f4fa7cdcc23ef469cfc7387b5cfc2f132505)
@@ -22,6 +22,6 @@
 # Initial parameter values (if other than defaults)
 initial_vals = {
-    "core_sld" : 1.0592,
-    "solvent_sld" : 2.88,
+    "sld_core" : 1.0592,
+    "sld_solvent" : 2.88,
     "radius" : 890,
     "thickness" : 130
Index: sasmodels/kerneldll.py
===================================================================
--- sasmodels/kerneldll.py	(revision 17bbadde9de73711781f748816b06e6956dc8cfa)
+++ sasmodels/kerneldll.py	(revision 6ad0e875ccffda2d8d0cb50c477d8c365bf0ffcd)
@@ -51,4 +51,5 @@
 import ctypes as ct
 from ctypes import c_void_p, c_int, c_longdouble, c_double, c_float
+import _ctypes
 
 import numpy as np
@@ -125,5 +126,5 @@
     if callable(model_info.get('Iq', None)):
         return PyModel(model_info)
-
+    
     dtype = np.dtype(dtype)
     if dtype == generate.F16:
@@ -138,5 +139,5 @@
     else:
         tempfile_prefix = 'sas_' + model_info['name'] + '128_'
-
+ 
     source = generate.convert_type(source, dtype)
     source_files = generate.model_sources(model_info) + [model_info['filename']]
@@ -188,4 +189,5 @@
     Call :meth:`release` when done with the kernel.
     """
+    
     def __init__(self, dllpath, model_info, dtype=generate.F32):
         self.info = model_info
@@ -217,4 +219,6 @@
         self.Iqxy = self.dll[generate.kernel_name(self.info, True)]
         self.Iqxy.argtypes = IQXY_ARGS + pd_args_2d + [fp]*Nfixed2d
+        
+        self.release()
 
     def __getstate__(self):
@@ -230,10 +234,20 @@
         kernel = self.Iqxy if q_input.is_2d else self.Iq
         return DllKernel(kernel, self.info, q_input)
-
+    
     def release(self):
         """
         Release any resources associated with the model.
         """
-        pass # TODO: should release the dll
+        if os.name == 'nt':
+            #dll = ct.cdll.LoadLibrary(self.dllpath)
+            dll = ct.CDLL(self.dllpath)
+            libHandle = dll._handle
+            #libHandle = ct.c_void_p(dll._handle)
+            del dll, self.dll
+            self.dll = None
+            #_ctypes.FreeLibrary(libHandle)
+            ct.windll.kernel32.FreeLibrary(libHandle)
+        else:    
+            pass 
 
 
Index: sasmodels/models/correlation_length.py
===================================================================
--- sasmodels/models/correlation_length.py	(revision 326281fd9fb5294db84c5fa753d0c94b8f26f78d)
+++ sasmodels/models/correlation_length.py	(revision 0cc31e163b64eca925abbec18fe8338cc1fc7450)
@@ -16,5 +16,5 @@
 incoherent background B and the two exponents n and m are used as fitting
 parameters. (Respectively $porod\_scale$, $lorentz\_scale$, $background$, $exponent\_p$ and 
-$exponent\_l$ in the parameter list.) The remaining parameter \xi is a correlation 
+$exponent\_l$ in the parameter list.) The remaining parameter \ |xi|\  is a correlation 
 length for the polymer chains. Note that when m=2 this functional form becomes the 
 familiar Lorentzian function. Some interpretation of the values of A and C may be 
Index: sasmodels/models/elliptical_cylinder.py
===================================================================
--- sasmodels/models/elliptical_cylinder.py	(revision 74fd96f3cb65aab96542ed09140f082ada4911d6)
+++ sasmodels/models/elliptical_cylinder.py	(revision 0cc31e163b64eca925abbec18fe8338cc1fc7450)
@@ -12,5 +12,5 @@
 .. figure:: img/elliptical_cylinder_geometry.png
 
-   Elliptical cylinder geometry $a$ = $r_{minor}$ and \nu = $axis\_ratio$ = $r_{major} / r_{minor}$
+   Elliptical cylinder geometry $a$ = $r_{minor}$ and \ |nu|\  = $axis\_ratio$ = $r_{major} / r_{minor}$
 
 The function calculated is
Index: sasmodels/models/fuzzy_sphere.py
===================================================================
--- sasmodels/models/fuzzy_sphere.py	(revision aa2edb2b2fb550caed0506dcf63bc7eac7e1779a)
+++ sasmodels/models/fuzzy_sphere.py	(revision 0cc31e163b64eca925abbec18fe8338cc1fc7450)
@@ -19,5 +19,5 @@
 
     A(q) = \frac{3\left[\sin(qR) - qR \cos(qR)\right]}{(qR)^3}
-           \exp\left(\frac{-(o_{fuzzy}q)^2}{2}\right)
+           \exp\left(\frac{-(\sigma_{fuzzy}q)^2}{2}\right)
 
 Here *|A(q)|*:sup:`2`\  is the form factor, *P(q)*. The scale is equivalent to the
@@ -26,5 +26,6 @@
 solvent.
 
-Poly-dispersion in radius and in fuzziness is provided for.
+Poly-dispersion in radius and in fuzziness is provided for, though the fuzziness
+must be kept much smaller than the sphere radius for meaningful results.
 
 
@@ -65,5 +66,5 @@
 or just volume fraction for absolute scale data
 radius: radius of the solid sphere
-fuzziness = the STD of the height of fuzzy interfacial
+fuzziness = the standard deviation of the fuzzy interfacial
 thickness (ie., so-called interfacial roughness)
 sld: the SLD of the sphere
@@ -76,8 +77,8 @@
 # pylint: disable=bad-whitespace,line-too-long
 # ["name", "units", default, [lower, upper], "type","description"],
-parameters = [["sld",         "1e-6/Ang^2",  1, [-inf, inf], "",       "Layer scattering length density"],
-              ["solvent_sld", "1e-6/Ang^2",  3, [-inf, inf], "",       "Solvent scattering length density"],
+parameters = [["sld",         "1e-6/Ang^2",  1, [-inf, inf], "",       "Particle scattering length density"],
+              ["sld_solvent", "1e-6/Ang^2",  3, [-inf, inf], "",       "Solvent scattering length density"],
               ["radius",      "Ang",        60, [0, inf],    "volume", "Sphere radius"],
-              ["fuzziness",   "Ang",        10, [0, inf],    "",       "The STD of the height of fuzzy interfacial"],
+              ["fuzziness",   "Ang",        10, [0, inf],    "",       "std deviation of Gaussian convolution for interface (must be << radius)"],
              ]
 # pylint: enable=bad-whitespace,line-too-long
@@ -95,5 +96,5 @@
     const double bes = sph_j1c(qr);
     const double qf = q*fuzziness;
-    const double fq = bes * (sld - solvent_sld) * form_volume(radius) * exp(-0.5*qf*qf);
+    const double fq = bes * (sld - sld_solvent) * form_volume(radius) * exp(-0.5*qf*qf);
     return 1.0e-4*fq*fq;
     """
@@ -102,5 +103,5 @@
     // never called since no orientation or magnetic parameters.
     //return -1.0;
-    return Iq(sqrt(qx*qx + qy*qy), sld, solvent_sld, radius, fuzziness);
+    return Iq(sqrt(qx*qx + qy*qy), sld, sld_solvent, radius, fuzziness);
     """
 
@@ -114,5 +115,5 @@
 
 demo = dict(scale=1, background=0.001,
-            sld=1, solvent_sld=3,
+            sld=1, sld_solvent=3,
             radius=60,
             fuzziness=10,
@@ -121,5 +122,5 @@
 
 oldname = "FuzzySphereModel"
-oldpars = dict(sld='sldSph', solvent_sld='sldSolv', radius='radius', fuzziness='fuzziness')
+oldpars = dict(sld='sldSph', sld_solvent='sldSolv', radius='radius', fuzziness='fuzziness')
 
 
Index: sasmodels/models/gauss_lorentz_gel.py
===================================================================
--- sasmodels/models/gauss_lorentz_gel.py	(revision aa2edb2b2fb550caed0506dcf63bc7eac7e1779a)
+++ sasmodels/models/gauss_lorentz_gel.py	(revision b8954d7b3402719d5ef671b921a19c9922cf5675)
@@ -2,6 +2,7 @@
 This model calculates the scattering from a gel structure,
 but typically a physical rather than chemical network.
-It is modeled as a sum of a low-q exponential decay plus
-a lorentzian at higher-q values.
+It is modeled as a sum of a low-q exponential decay (which happens to
+give a functional form similar to Guinier scattering, so interpret with 
+care) plus a Lorentzian at higher-q values. See also the gel_fit model.
 
 Definition
@@ -16,7 +17,7 @@
 $\Xi$ is the length scale of the static correlations in the gel,
 which can be attributed to the "frozen-in" crosslinks.
-$\xi is the dynamic correlation length, which can be attributed to the
+\ |xi|\  is the dynamic correlation length, which can be attributed to the
 fluctuating polymer chains between crosslinks.
-$IG(0)$ and $IL(0)$ are the scaling factors for each of these structures.
+$I_G(0)$ and $I_L(0)$ are the scaling factors for each of these structures.
 Think carefully about how these map to your particular system!
 
Index: sasmodels/models/gel_fit.py
===================================================================
--- sasmodels/models/gel_fit.py	(revision aa2edb2b2fb550caed0506dcf63bc7eac7e1779a)
+++ sasmodels/models/gel_fit.py	(revision b8954d7b3402719d5ef671b921a19c9922cf5675)
@@ -8,5 +8,6 @@
 and a longer distance (denoted here as $a2$ ) needed to account for the static
 accumulations of polymer pinned down by junction points or clusters of such
-points. The latter is derived from a simple Guinier function.
+points. The latter is derived from a simple Guinier function. Compare also the 
+gauss_lorentz_gel model.
 
 
@@ -33,6 +34,6 @@
 
 
-Reference
----------
+References
+----------
 
 Mitsuhiro Shibayama, Toyoichi Tanaka, Charles C Han,
@@ -60,6 +61,6 @@
 # pylint: disable=bad-whitespace, line-too-long
 #             ["name", "units", default, [lower, upper], "type","description"],
-parameters = [["guinier_scale",    "cm^{-1}",   1.7, [-inf, inf], "", "Guinier length scale"],
-              ["lorentzian_scale", "cm^{-1}",   3.5, [-inf, inf], "", "Lorentzian length scale"],
+parameters = [["guinier_scale",    "cm^-1",   1.7, [-inf, inf], "", "Guinier length scale"],
+              ["lorentzian_scale", "cm^-1",   3.5, [-inf, inf], "", "Lorentzian length scale"],
               ["gyration_radius",  "Ang",     104.0, [2, inf],    "", "Radius of gyration"],
               ["fractal_exp",      "",          2.0, [0, inf],    "", "Fractal exponent"],
Index: sasmodels/models/guinier.py
===================================================================
--- sasmodels/models/guinier.py	(revision a84a0cac83cecece77ff644df4f2552ef1452b62)
+++ sasmodels/models/guinier.py	(revision 45330ed87f6bdaf8560c04fe1639a77425c766e9)
@@ -5,8 +5,10 @@
 This model fits the Guinier function
 
-.. math:: q_1=\frac{1}{R_g}\sqrt{\frac{(m-s)(3-s)}{2}}
+.. math:: I(q) = scale \exp{\left[ \frac{-Q^2R_g^2}{3} \right]}
 
 to the data directly without any need for linearisation
-(*cf*. $\ln I(q)$ vs $q^2$\ ).
+(*cf*. the usual plot of $\ln I(q)$ vs $q^2$\ ). Note that you may have to 
+restrict the data range to include small q only, where the Guinier approximation
+actually applies. See also the guinier_porod model.
 
 For 2D data the scattering intensity is calculated in the same way as 1D,
@@ -27,5 +29,5 @@
 title = ""
 description = """
- I(q) = scale exp ( - rg^2 q^2 / 3.0 )
+ I(q) = scale.exp ( - rg^2 q^2 / 3.0 )
  
     List of default parameters:
Index: sasmodels/models/guinier_porod.py
===================================================================
--- sasmodels/models/guinier_porod.py	(revision aa2edb2b2fb550caed0506dcf63bc7eac7e1779a)
+++ sasmodels/models/guinier_porod.py	(revision 45330ed87f6bdaf8560c04fe1639a77425c766e9)
@@ -39,8 +39,10 @@
 Note that the radius-of-gyration for a sphere of radius R is given by $R_g = R \sqrt(3/5)$.
 
-The cross-sectional radius-of-gyration for a randomly oriented cylinder
-of radius R is given by $R_g = R / \sqrt(2)$.
+For a cylinder of radius $R$ and length $L$,    $R_g^2 = \frac{L^2}{12} + \frac{R^2}{2}$
 
-The cross-sectional radius-of-gyration of a randomly oriented lamella
+from which the cross-sectional radius-of-gyration for a randomly oriented thin 
+cylinder is $R_g = R / \sqrt(2)$.
+
+and the cross-sectional radius-of-gyration of a randomly oriented lamella
 of thickness $T$ is given by $R_g = T / \sqrt(12)$.
 
Index: sasmodels/models/raspberry.c
===================================================================
--- sasmodels/models/raspberry.c	(revision bad8b1212431e9f040d688c7bd43c49ef99bedbd)
+++ sasmodels/models/raspberry.c	(revision a2d8a67a8370b3bfa30cff11c890597d110cfe2b)
@@ -21,5 +21,5 @@
 double Iq(double q,
           double sld_lg, double sld_sm, double sld_solvent,
-          double volfraction_lg, double volfraction_sm, double surf_fraction,
+          double volfraction_lg, double volfraction_sm, double surface_fraction,
           double radius_lg, double radius_sm, double penetration)
 {
@@ -37,6 +37,6 @@
     sldL = sld_lg;
     vfS = volfraction_sm;
+    fSs = surface_fraction;
     rS = radius_sm;
-    aSs = surf_fraction;
     sldS = sld_sm;
     deltaS = penetration;
@@ -48,25 +48,37 @@
     VL = M_4PI_3*rL*rL*rL;
     VS = M_4PI_3*rS*rS*rS;
-    Np = aSs*4.0*pow(((rL+deltaS)/rS), 2.0);
-    fSs = Np*vfL*VS/vfS/VL;
-    
-    Np2 = aSs*4.0*(rS/(rL+deltaS))*VL/VS; 
-    fSs2 = Np2*vfL*VS/vfS/VL;
+
+    //Number of small particles per large particle
+    Np = vfS*fSs*VL/vfL/VS;
+
+    //Total scattering length difference
     slT = delrhoL*VL + Np*delrhoS*VS;
 
-    sfLS = sph_j1c(q*rL)*sph_j1c(q*rS)*sinc(q*(rL+deltaS*rS));
-    sfSS = sph_j1c(q*rS)*sph_j1c(q*rS)*sinc(q*(rL+deltaS*rS))*sinc(q*(rL+deltaS*rS));
-        
-    f2 = delrhoL*delrhoL*VL*VL*sph_j1c(q*rL)*sph_j1c(q*rL); 
-    f2 += Np2*delrhoS*delrhoS*VS*VS*sph_j1c(q*rS)*sph_j1c(q*rS); 
-    f2 += Np2*(Np2-1)*delrhoS*delrhoS*VS*VS*sfSS; 
-    f2 += 2*Np2*delrhoL*delrhoS*VL*VS*sfLS;
+    //Form factors for each particle
+    psiL = sph_j1c(q*rL);
+    psiS = sph_j1c(q*rS);
+
+    //Cross term between large and small particles
+    sfLS = psiL*psiS*sinc(q*(rL+deltaS*rS));
+    //Cross term between small particles at the surface
+    sfSS = psiS*psiS*sinc(q*(rL+deltaS*rS))*sinc(q*(rL+deltaS*rS));
+
+    //Large sphere form factor term
+    f2 = delrhoL*delrhoL*VL*VL*psiL*psiL;
+    //Small sphere form factor term
+    f2 += Np*delrhoS*delrhoS*VS*VS*psiS*psiS;
+    //Small particle - small particle cross term
+    f2 += Np*(Np-1)*delrhoS*delrhoS*VS*VS*sfSS;
+    //Large-small particle cross term
+    f2 += 2*Np*delrhoL*delrhoS*VL*VS*sfLS;
+    //Normalise by total scattering length difference
     if (f2 != 0.0){
         f2 = f2/slT/slT;
         }
 
-    f2 = f2*(vfL*delrhoL*delrhoL*VL + vfS*fSs2*Np2*delrhoS*delrhoS*VS);
-
-    f2+= vfS*(1.0-fSs)*pow(delrhoS, 2)*VS*sph_j1c(q*rS)*sph_j1c(q*rS);
+    //I(q) for large-small composite particles
+    f2 = f2*(vfL*delrhoL*delrhoL*VL + vfS*fSs*Np*delrhoS*delrhoS*VS);
+    //I(q) for free small particles
+    f2+= vfS*(1.0-fSs)*delrhoS*delrhoS*VS*psiS*psiS;
     
     // normalize to single particle volume and convert to 1/cm
Index: sasmodels/models/raspberry.py
===================================================================
--- sasmodels/models/raspberry.py	(revision bad8b1212431e9f040d688c7bd43c49ef99bedbd)
+++ sasmodels/models/raspberry.py	(revision 2c1bbcdda40d60033fcfbb529ca0c186dbe707bf)
@@ -3,28 +3,94 @@
 ----------
 
-The large and small spheres have their own SLD, as well as the solvent. The
-surface coverage term is a fractional coverage (maximum of approximately 0.9
-for hexagonally-packed spheres on a surface). Since not all of the small
-spheres are necessarily attached to the surface, the excess free (small)
-spheres scattering is also included in the calculation. The function calculate
-follows equations (8)-(12) of the reference below, and the equations are not
-reproduced here.
-
-No inter-particle scattering is included in this model.
-
+The figure below shows a schematic of a large droplet surrounded by several
+smaller particles forming a structure similar to that of Pickering emulsions.
 
 .. figure:: img/raspberry_geometry.jpg
 
     Schematic of the raspberry model
-    
-where *Ro* is the radius of the large sphere, *Rp* the radius of the smaller 
-spheres on the surface and |delta| = the fractional penetration depth.
 
-For 2D data: The 2D scattering intensity is calculated in the same way as 1D,
-where the *q* vector is defined as
+In order to calculate the form factor of the entire complex, the self-
+correlation of the large droplet, the self-correlation of the particles, the
+correlation terms between different particles and the cross terms between large
+droplet and small particles all need to be calculated.
+
+Consider two infinitely thin shells of radii R1 and R2 separated by distance r.
+The general structure of the equation is then the form factor of the two shells
+multiplied by the phase factor that accounts for the separation of their
+centers.
 
 .. math::
 
-    q = \sqrt{q_x^2 + q_y^2}
+    S(q) = \frac{sin(qR_1)}{qR_1}\frac{sin(qR_2)}{qR_2}\frac{sin(qr)}{qr}
+
+In this case, the large droplet and small particles are solid spheres rather
+than thin shells. Thus the two terms must be integrated over $R_L$ and $R_S$
+respectively using the weighting function of a sphere. We then obtain the
+functions for the form of the two spheres:
+
+.. math::
+
+    \Psi_L = \int_0^{R_L}(4\pi R^2_L)\frac{sin(qR_L)}{qR_L}dR_L = 
+    \frac{3[sin(qR_L)-qR_Lcos(qR_L)]}{(qR_L)^2}
+
+.. math::
+
+    \Psi_S = \int_0^{R_S}(4\pi R^2_S)\frac{sin(qR_S)}{qR_S}dR_S =
+    \frac{3[sin(qR_S)-qR_Lcos(qR_S)]}{(qR_S)^2}
+
+The cross term between the large droplet and small particles is given by:
+
+.. math::
+    S_{LS} = \Psi_L\Psi_S\frac{sin(q(R_L+\delta R_S))}{q(R_L+\delta\ R_S)}
+
+and the self term between small particles is given by:
+
+.. math::
+    S_{SS} = \Psi_S^2\biggl[\frac{sin(q(R_L+\delta R_S))}{q(R_L+\delta\ R_S)}
+    \biggr]^2
+
+The number of small particles per large droplet, $N_p$, is given by:
+
+.. math::
+
+    N_p = \frac{\phi_S\phi_{surface}V_L}{\phi_L V_S}
+
+where $\phi_S$ is the volume fraction of small particles in the sample,
+$\phi_{surface}$ is the fraction of the small particles that are adsorbed to
+the large droplets, $\phi_L$ is the volume fraction of large droplets in the
+sample, and $V_S$ and $V_L$ are the volumes of individual small particles and
+large droplets respectively.
+
+The form factor of the entire complex can now be calculated including the excess
+scattering length densities of the components $\Delta\rho_L$ and $\Delta\rho_S$,
+where $\Delta\rho_x = |\rho_x-\rho_{solvent}|$ :
+
+.. math::
+
+    P_{LS} = \frac{1}{M^2}\bigl[(\Delta\rho_L)^2V_L^2\Psi_L^2
+                +N_p(\Delta\rho_S)^2V_S^2\Psi_S^2
+                + N_p(1-N_p)(\Delta\rho_S)^2V_S^2S_{SS}
+                + 2N_p\Delta\rho_L\Delta\rho_SV_LV_SS_{LS}\bigr]
+
+where M is the total scattering length of the whole complex :
+
+.. math::
+    M = \Delta\rho_LV_L + N_p\Delta\rho_SV_S
+
+In a real system, there will ususally be an excess of small particles such that
+some fraction remain unbound. Therefore the overall scattering intensity is
+given by:
+
+.. math::
+    I(Q) = I_{LS}(Q) + I_S(Q) = (\phi_L(\Delta\rho_L)^2V_L + 
+            \phi_S\phi_{surface}N_p(\Delta\rho_S)^2V_S)P_{LS}
+            + \phi_S(1-\phi_{surface})(\Delta\rho_S)^2V_S\Psi_S^2
+
+A useful parameter to extract is the fraction of the surface area of the large
+droplets that is covered by small particles. This can be calculated from the
+model parameters as:
+
+.. math::
+    \chi = \frac{4\phi_L\phi_{surface}(R_L+\delta R_S)}{\phi_LR_S}
 
 
@@ -32,12 +98,13 @@
 ----------
 
-K Larson-Smith, A Jackson, and D C Pozzo, *Small angle scattering model for Pickering emulsions and raspberry*
-*particles*, *Journal of Colloid and Interface Science*, 343(1) (2010) 36-41
+K Larson-Smith, A Jackson, and D C Pozzo, *Small angle scattering model for
+Pickering emulsions and raspberry particles*, *Journal of Colloid and Interface
+Science*, 343(1) (2010) 36-41
 
-**Author:** Andrew jackson **on:** 2008
+**Author:** Andrew Jackson **on:** 2008
 
-**Modified by:** Paul Butler **on:** March 18, 2016
+**Modified by:** Andrew Jackson **on:** March 20, 2016
 
-**Reviewed by:** Paul Butler **on:** March 18, 2016
+**Reviewed by:** Andrew Jackson **on:** March 20, 2016
 """
 
@@ -50,13 +117,13 @@
 description = """
                 RaspBerryModel:
-                volf_Lsph = volume fraction large spheres
-                radius_Lsph = radius large sphere (A)
-                sld_Lsph = sld large sphere (A-2)
-                volf_Ssph = volume fraction small spheres
-                radius_Ssph = radius small sphere (A)
-                surfrac_Ssph = fraction of small spheres at surface
-                sld_Ssph = sld small sphere
-                delta_Ssph = small sphere penetration (A) 
-                sld_solv   = sld solvent
+                volfraction_lg = volume fraction large spheres
+                radius_lg = radius large sphere (A)
+                sld_lg = sld large sphere (A-2)
+                volfraction_sm = volume fraction small spheres
+                radius_sm = radius small sphere (A)
+                surface_fraction = fraction of small spheres at surface
+                sld_sm = sld small sphere
+                penetration = small sphere penetration (A)
+                sld_solvent   = sld solvent
                 background = background (cm-1)
             Ref: J. coll. inter. sci. (2010) vol. 343 (1) pp. 36-41."""
@@ -74,5 +141,5 @@
               ["volfraction_sm", "", 0.005, [-inf, inf], "",
                "volume fraction of small spheres"],
-              ["surf_fraction", "", 0.4, [-inf, inf], "",
+              ["surface_fraction", "", 0.4, [-inf, inf], "",
                "fraction of small spheres at surface"],
               ["radius_lg", "Ang", 5000, [0, inf], "volume",
@@ -80,6 +147,6 @@
               ["radius_sm", "Ang", 100, [0, inf], "",
                "radius of small spheres"],
-              ["penetration", "Ang", 0.0, [0, inf], "",
-               "penetration depth of small spheres into large sphere"],
+              ["penetration", "Ang", 0, [-1, 1], "",
+               "fractional penetration depth of small spheres into large sphere"],
              ]
 
@@ -89,5 +156,5 @@
 demo = dict(scale=1, background=0.001,
             sld_lg=-0.4, sld_sm=3.5, sld_solvent=6.36,
-            volfraction_lg=0.05, volfraction_sm=0.005, surf_fraction=0.4,
+            volfraction_lg=0.05, volfraction_sm=0.005, surface_fraction=0.4,
             radius_lg=5000, radius_sm=100, penetration=0.0,
             radius_lg_pd=.2, radius_lg_pd_n=10)
@@ -95,11 +162,4 @@
 # For testing against the old sasview models, include the converted parameter
 # names and the target sasview model name.
-oldname = 'RaspBerryModel'
-oldpars = dict(sld_lg='sld_Lsph', sld_sm='sld_Ssph', sld_solvent='sld_solv',
-               volfraction_lg='volf_Lsph', volfraction_sm='volf_Ssph',
-               surf_fraction='surfrac_Ssph',
-               radius_lg='radius_Lsph', radius_sm='radius_Ssph',
-               penetration='delta_Ssph')
-
 
 # NOTE: test results taken from values returned by SasView 3.1.2, with
Index: sasmodels/sesans.py
===================================================================
--- sasmodels/sesans.py	(revision d459d4e9aa26271c364f8d00fb9d2532734b2872)
+++ sasmodels/sesans.py	(revision a154ad16d63ac5a27901c7c6b1f82e588f89f154)
@@ -26,6 +26,8 @@
     q_max is determined by the acceptance angle of the SESANS instrument.
     """
+    from sas.sascalc.data_util.nxsunit import Converter
+
     q_min = dq = 0.1 * 2*pi / Rmax
-    return np.arange(q_min, q_max, dq)
+    return np.arange(q_min, Converter("1/A")(q_max[0], units=q_max[1]), dq)
     
 def make_all_q(data):
