diff --git a/src/gov/usgs/earthquake/nshmp/gmm/CampbellBozorgnia_2014.java b/src/gov/usgs/earthquake/nshmp/gmm/CampbellBozorgnia_2014.java
index 8e7f1fed31530fbf083706a37447586aba8ee268..1ce22ee160bf011fe280cd81eb1ad13523813816 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/CampbellBozorgnia_2014.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/CampbellBozorgnia_2014.java
@@ -249,17 +249,7 @@ public final class CampbellBozorgnia_2014 implements GroundMotionModel {
         : (c.c11 + c.k2 * N) * log(vsk1);
 
     // Basin Response term -- Equation 20
-    // update z2p5 with CA model if not supplied -- Equation 33
-    double z2p5copy = z2p5;
-    if (Double.isNaN(z2p5)) {
-      z2p5copy = exp(7.089 - 1.144 * log(vs30));
-    }
-    double Fsed = 0.0;
-    if (z2p5copy <= 1.0) {
-      Fsed = c.c14 * (z2p5copy - 1.0);
-    } else if (z2p5copy > 3.0) {
-      Fsed = c.c16 * c.k3 * exp(-0.75) * (1.0 - exp(-0.25 * (z2p5copy - 3.0)));
-    }
+    double Fsed = basinResponseTerm(c, vs30, z2p5);
 
     // Hypocentral Depth term -- Equations 21, 22, 23
     double zHyp = in.zHyp;
@@ -282,6 +272,21 @@ public final class CampbellBozorgnia_2014 implements GroundMotionModel {
     return Fmag + Fr + Fflt + Fhw + Fsite + Fsed + Fhyp + Fdip + Fatn;
   }
 
+  // Basin Response term -- Equation 20
+  // update z2p5 with CA model if not supplied -- Equation 33
+  static final double basinResponseTerm(Coefficients c, double vs30, double z2p5) {
+    if (Double.isNaN(z2p5)) {
+      z2p5 = exp(7.089 - 1.144 * log(vs30));
+    }
+    if (z2p5 <= 1.0) {
+      return c.c14 * (z2p5 - 1.0);
+    } else if (z2p5 > 3.0) {
+      return c.c16 * c.k3 * exp(-0.75) * (1.0 - exp(-0.25 * (z2p5 - 3.0)));
+    } else {
+      return 0.0;
+    }
+  }
+
   // Aleatory uncertainty model
   private static final double calcStdDev(final Coefficients c, final Coefficients cPGA,
       final double Mw, final double vs30, final double pgaRock) {