diff --git a/src/gov/usgs/earthquake/nshmp/calc/ClusterCurves.java b/src/gov/usgs/earthquake/nshmp/calc/ClusterCurves.java
index 8c1516e3ab89a545dc2e3f83a4ac3111b38151d1..10dec96eaf19ee2ad18d4da7266f290ad3814503 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/ClusterCurves.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/ClusterCurves.java
@@ -26,7 +26,7 @@ final class ClusterCurves {
   private ClusterCurves(
       ClusterGroundMotions clusterGroundMotions,
       Map<Imt, Map<Gmm, XySequence>> curveMap) {
-    
+
     this.clusterGroundMotions = clusterGroundMotions;
     this.curveMap = curveMap;
   }
diff --git a/src/gov/usgs/earthquake/nshmp/calc/DeaggConfig.java b/src/gov/usgs/earthquake/nshmp/calc/DeaggConfig.java
index b99df9df872a1d7da30820b5f944dc570abb411c..3bf40f86b15878b1d0d7cdf23dc6f992c2b4cf68 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/DeaggConfig.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/DeaggConfig.java
@@ -159,7 +159,7 @@ final class DeaggConfig {
           truncation);
     }
   }
-  
+
   static EpsilonBins createEpsilonBins(List<Double> εLevels, double εDelta) {
     double εDeltaBy2 = εDelta / 2.0;
     ImmutableList.Builder<εBin> bins = ImmutableList.builder();
@@ -171,5 +171,4 @@ final class DeaggConfig {
     return new EpsilonBins(bins.build());
   }
 
-
 }
diff --git a/src/gov/usgs/earthquake/nshmp/calc/DeaggContributor.java b/src/gov/usgs/earthquake/nshmp/calc/DeaggContributor.java
index 8b3683182d446f950582673a588de96ca370d0f6..12d8ab014616dc8f2a43814fbcb38de108fac62e 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/DeaggContributor.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/DeaggContributor.java
@@ -720,10 +720,10 @@ abstract class DeaggContributor {
 
     /* Use for SourceSets. */
     static JsonContributor createMulti(
-        String name, 
-        SourceType source, 
+        String name,
+        SourceType source,
         double contribution) {
-      
+
       JsonContributor jc = new JsonContributor();
       jc.name = name;
       jc.source = source.toString();
diff --git a/src/gov/usgs/earthquake/nshmp/calc/DeaggExport.java b/src/gov/usgs/earthquake/nshmp/calc/DeaggExport.java
index 23e6679b83fde0917916e28ea8519d975d443255..095e3d622335ba44792539c13c4c920344c01ba1 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/DeaggExport.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/DeaggExport.java
@@ -353,8 +353,8 @@ final class DeaggExport {
 
     /* custom imt formatting */
     Imt imt = dc.imt;
-    String imlLabel = (imt.isSA() ? imt.period() + " s SA": imt.name()) + " ground motion";
-    
+    String imlLabel = (imt.isSA() ? imt.period() + " s SA" : imt.name()) + " ground motion";
+
     ImmutableList.Builder<SummaryElement> summaryElements = ImmutableList.builder();
     summaryElements.add(
 
diff --git a/src/gov/usgs/earthquake/nshmp/calc/Deaggregator.java b/src/gov/usgs/earthquake/nshmp/calc/Deaggregator.java
index 2021d0e99cdbb19024da5a65a728aff7cfba06a9..c0157b79ad8a1e06e0e70efc989a5876772b8563 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/Deaggregator.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/Deaggregator.java
@@ -352,8 +352,8 @@ final class Deaggregator {
       double azimuth = Locations.azimuth(site.location, location);
 
       /*
-       * Init sectionMfds, create system contributors for section and attach
-       * to parent.
+       * Init sectionMfds, create system contributors for section and attach to
+       * parent.
        */
       Map<Gmm, SystemContributor.Builder> contributors = new EnumMap<>(Gmm.class);
       for (Gmm gmm : gmmKeys) {
diff --git a/src/gov/usgs/earthquake/nshmp/calc/DistributionFormat.java b/src/gov/usgs/earthquake/nshmp/calc/DistributionFormat.java
index dc358aaff931f0def644a014c012d8de401aa707..2a1bcc4e4d846c9a4075bb963cb646fa4ec22b8f 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/DistributionFormat.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/DistributionFormat.java
@@ -10,5 +10,5 @@ public enum DistributionFormat {
 
   INCREMENTAL,
   CUMULATIVE;
-  
+
 }
diff --git a/src/gov/usgs/earthquake/nshmp/calc/EqRateExport.java b/src/gov/usgs/earthquake/nshmp/calc/EqRateExport.java
index b4ee63bad686071e1fd6f04c9fa7aac77d69b4ee..8eeffe96994fc06cf346b5dd0f0ce26ed828a16d 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/EqRateExport.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/EqRateExport.java
@@ -38,7 +38,7 @@ public final class EqRateExport {
 
   private static final String RATE_FORMAT = "%.8g";
   private static final String PROB_FORMAT = "%.2f";
-  
+
   private final Logger log;
   private final Path dir;
   private final String valueFormat;
@@ -57,10 +57,10 @@ public final class EqRateExport {
   private final List<EqRate> rates;
 
   private EqRateExport(CalcConfig config, Sites sites, Logger log) throws IOException {
-    
+
     // whether or not rates or probabilities have been calculated
     boolean rates = config.rate.valueFormat == ValueFormat.ANNUAL_RATE;
-    
+
     this.log = log;
     this.dir = HazardExport.createOutputDir(updateOutDir(config.output.directory, rates));
     this.valueFormat = rates ? RATE_FORMAT : PROB_FORMAT;
diff --git a/src/gov/usgs/earthquake/nshmp/calc/GroundMotions.java b/src/gov/usgs/earthquake/nshmp/calc/GroundMotions.java
index 0f5cfd882f2c0bdda1831bf346ab19ad0061b369..4603337cb8b872d37b7aeb43e90ece9f2fa7b35a 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/GroundMotions.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/GroundMotions.java
@@ -36,7 +36,7 @@ final class GroundMotions {
   private GroundMotions(
       InputList inputs,
       Map<Imt, Map<Gmm, List<ScalarGroundMotion>>> gmMap) {
-    
+
     this.inputs = inputs;
     this.gmMap = gmMap;
   }
@@ -147,7 +147,7 @@ final class GroundMotions {
     private static int addValues(
         Map<Imt, Map<Gmm, List<ScalarGroundMotion>>> sgmTargetMap,
         Map<Imt, Map<Gmm, List<ScalarGroundMotion>>> sgmValueMap) {
-      
+
       int setCount = 0;
       for (Entry<Imt, Map<Gmm, List<ScalarGroundMotion>>> imtEntry : sgmTargetMap.entrySet()) {
         Imt imt = imtEntry.getKey();
@@ -162,5 +162,5 @@ final class GroundMotions {
       return setCount;
     }
   }
-  
+
 }
diff --git a/src/gov/usgs/earthquake/nshmp/calc/Hazard.java b/src/gov/usgs/earthquake/nshmp/calc/Hazard.java
index f01a5a3c87a629013f71ce59c6a044cd1e98af23..67b753f820883aae5b85ef3328151bfcedb6af80 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/Hazard.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/Hazard.java
@@ -105,8 +105,8 @@ public final class Hazard {
 
   /**
    * Combine hazard from multiple independent models. The hazard object returned
-   * by this method will only specify a parent 'model' if varargs only
-   * included one model.
+   * by this method will only specify a parent 'model' if varargs only included
+   * one model.
    * 
    * <p><b>Note:</b> When combining hazard results, the combined result inherits
    * the {@link CalcConfig} from the first model supplied in varargs. This may
diff --git a/src/gov/usgs/earthquake/nshmp/calc/HazardCurveSet.java b/src/gov/usgs/earthquake/nshmp/calc/HazardCurveSet.java
index a309b4a39fefb061cd24df3709721d506a379b92..5fcb398900da3fe32b346234bfdbf21b110afa6d 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/HazardCurveSet.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/HazardCurveSet.java
@@ -59,7 +59,7 @@ final class HazardCurveSet {
   final Map<Imt, List<Map<Gmm, XySequence>>> clusterCurveLists;
   final Map<Imt, Map<Gmm, XySequence>> curveMap;
   final Map<Imt, XySequence> totalCurves;
-  
+
   // TODO separate references by what is needed for hazard vs deagg
   // deagg of cluster and system types requires us to hold onto some
   // objects created when generating hazard curves
@@ -150,7 +150,7 @@ final class HazardCurveSet {
         if (cluster) {
           List<Map<Gmm, XySequence>> clusterCurveList = new ArrayList<>();
           clusterCurveLists.put(imt, clusterCurveList);
-          
+
         }
       }
       totalCurves = new EnumMap<>(Imt.class);
@@ -186,14 +186,14 @@ final class HazardCurveSet {
         Map<Gmm, XySequence> curveMapBuild = curveMap.get(imt);
 
         /*
-         * Retain references to the total curve for each cluster source
-         * for deaggregation in clusterCurveLists. These lists of maps by
-         * GMM will contain only those curves for the GMMs approprate for
-         * the source-site distance. When deaggreagting, the same distance
-         * cutoff will be considered so retrieval of curves from the maps
-         * should never thrwo an NPE.
+         * Retain references to the total curve for each cluster source for
+         * deaggregation in clusterCurveLists. These lists of maps by GMM will
+         * contain only those curves for the GMMs approprate for the source-site
+         * distance. When deaggreagting, the same distance cutoff will be
+         * considered so retrieval of curves from the maps should never thrwo an
+         * NPE.
          */
-        
+
         Map<Gmm, XySequence> clusterCurves = new EnumMap<>(Gmm.class);
         // loop Gmms based on what's supported at this distance
         for (Gmm gmm : gmmWeightMap.keySet()) {
diff --git a/src/gov/usgs/earthquake/nshmp/calc/Sites.java b/src/gov/usgs/earthquake/nshmp/calc/Sites.java
index 97640b21bfdf5f88fbca4a0446e8deae62699b76..9b3231be4e5113294d765333b4fda29ed8599029 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/Sites.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/Sites.java
@@ -231,7 +231,7 @@ public abstract class Sites implements Iterable<Site> {
    * The number of {@code Site}s {@code this} contains.
    */
   public abstract int size();
-  
+
   /**
    * An optional {@code Bounds} that is used to specify rectangular map extents,
    * which may differ from the range spanned by the sites in this. Presently
@@ -240,7 +240,7 @@ public abstract class Sites implements Iterable<Site> {
    * {@code == true}.
    */
   public abstract Optional<Bounds> mapBounds();
-  
+
   /**
    * An optional spacing value that reflects the spacing of sites within an
    * attendant {@link #mapBounds()}.
@@ -263,7 +263,7 @@ public abstract class Sites implements Iterable<Site> {
     public int size() {
       return delegate.size();
     }
-    
+
     @Override
     public Optional<Bounds> mapBounds() {
       return Optional.absent();
@@ -318,7 +318,7 @@ public abstract class Sites implements Iterable<Site> {
     public int size() {
       return region.size();
     }
-    
+
     @Override
     public Optional<Bounds> mapBounds() {
       return bounds;
diff --git a/src/gov/usgs/earthquake/nshmp/calc/ValueFormat.java b/src/gov/usgs/earthquake/nshmp/calc/ValueFormat.java
index bd4e91b2833db26d6b84d56e0838409828144ef6..e8fc7bf50ac7c49c79bebba10f154bcdd3fb0211 100644
--- a/src/gov/usgs/earthquake/nshmp/calc/ValueFormat.java
+++ b/src/gov/usgs/earthquake/nshmp/calc/ValueFormat.java
@@ -14,7 +14,7 @@ public enum ValueFormat {
 
   /** Poisson probability. */
   POISSON_PROBABILITY;
-  
+
   @Override
   public String toString() {
     return Parsing.enumLabelWithSpaces(this, true);
diff --git a/src/gov/usgs/earthquake/nshmp/data/Data.java b/src/gov/usgs/earthquake/nshmp/data/Data.java
index 84ada894fd351c44c27864c32d873b62050b09a9..2826c273e7dc36c09af4031646cb8f73213db93e 100644
--- a/src/gov/usgs/earthquake/nshmp/data/Data.java
+++ b/src/gov/usgs/earthquake/nshmp/data/Data.java
@@ -1447,16 +1447,16 @@ public final class Data {
   // }
 
   static int firstNonZeroIndex(double... data) {
-    for (int i=0; i<data.length; i++) {
+    for (int i = 0; i < data.length; i++) {
       if (data[i] != 0.0) {
         return i;
       }
     }
     return -1;
   }
-  
+
   static int lastNonZeroIndex(double... data) {
-    for (int i=data.length-1; i>=0; i--) {
+    for (int i = data.length - 1; i >= 0; i--) {
       if (data[i] != 0.0) {
         return i;
       }
diff --git a/src/gov/usgs/earthquake/nshmp/data/ImmutableXySequence.java b/src/gov/usgs/earthquake/nshmp/data/ImmutableXySequence.java
index ec094ceea430751cb64a7af9439f126c876eaede..188ad3592dd611ce02805021b83bd69244ea88c5 100644
--- a/src/gov/usgs/earthquake/nshmp/data/ImmutableXySequence.java
+++ b/src/gov/usgs/earthquake/nshmp/data/ImmutableXySequence.java
@@ -66,7 +66,7 @@ class ImmutableXySequence extends XySequence {
   public final boolean isClear() {
     return Data.areZeroValued(ys);
   }
-  
+
   @Override
   public final XySequence trim() {
     checkState(!this.isClear(), "XySequence.trim() not permitted for 'clear' sequences");
diff --git a/src/gov/usgs/earthquake/nshmp/data/IntervalData.java b/src/gov/usgs/earthquake/nshmp/data/IntervalData.java
index f7d4dae77133d3f1cc13ed4d5f414eb78d43fd64..5c5e2c8083e36f2e91414b2b0123102622f874f4 100644
--- a/src/gov/usgs/earthquake/nshmp/data/IntervalData.java
+++ b/src/gov/usgs/earthquake/nshmp/data/IntervalData.java
@@ -218,7 +218,7 @@ public final class IntervalData {
       int iColumn = indexOf(columnMin, columnΔ, columnValue, columns.length);
       return get(iRow, iColumn);
     }
-    
+
     @Override
     public XySequence row(double rowValue) {
       int rowIndex = indexOf(rowMin, rowΔ, rowValue, rows.length);
@@ -364,7 +364,7 @@ public final class IntervalData {
       int iLevel = indexOf(levelMin, levelΔ, levelValue, levels.length);
       return get(iRow, iColumn, iLevel);
     }
-    
+
     @Override
     public XySequence column(double rowValue, double columnValue) {
       int iRow = indexOf(rowMin, rowΔ, rowValue, rows.length);
diff --git a/src/gov/usgs/earthquake/nshmp/eq/Earthquakes.java b/src/gov/usgs/earthquake/nshmp/eq/Earthquakes.java
index ebceb6f4105a272432060a0e9fe313c405390390..35a9204a4fd408e6db6d18baacbb3bc22eb58d02 100644
--- a/src/gov/usgs/earthquake/nshmp/eq/Earthquakes.java
+++ b/src/gov/usgs/earthquake/nshmp/eq/Earthquakes.java
@@ -16,7 +16,7 @@ import com.google.common.collect.Range;
 public final class Earthquakes {
 
   private Earthquakes() {}
-  
+
   /*
    * TODO possibly adjust Faults.CRUSTAL_DEPTH_RANGE CB14 restricts to 20 km and
    * the PEER database is pretty comprehensive. Perhaps implement active and
@@ -42,8 +42,8 @@ public final class Earthquakes {
   public static final Range<Double> SLAB_DEPTH_RANGE = Range.closed(20.0, 700.0);
 
   /**
-   * Supported earthquake magnitudes: {@code [-2.0..9.7]}. This range of
-   * values is not bound to any particular magnitude scale.
+   * Supported earthquake magnitudes: {@code [-2.0..9.7]}. This range of values
+   * is not bound to any particular magnitude scale.
    */
   public static final Range<Double> MAG_RANGE = Range.closed(-2.0, 9.7);
 
diff --git a/src/gov/usgs/earthquake/nshmp/eq/fault/surface/RuptureScaling.java b/src/gov/usgs/earthquake/nshmp/eq/fault/surface/RuptureScaling.java
index ff9c8ab59398c55a5913783a5ea6a2a659478986..1627136f96aae431b8114fb207ca46742b5e16b5 100644
--- a/src/gov/usgs/earthquake/nshmp/eq/fault/surface/RuptureScaling.java
+++ b/src/gov/usgs/earthquake/nshmp/eq/fault/surface/RuptureScaling.java
@@ -304,10 +304,10 @@ public enum RuptureScaling {
       return r;
     }
     int mIndex = min((int) round((m - RJB_M_MIN) / RJB_M_DELTA), RJB_M_MAX_INDEX);
-    int rIndex =  min(RJB_R_MAX_INDEX, (int) floor(r));
+    int rIndex = min(RJB_R_MAX_INDEX, (int) floor(r));
     return rjb[mIndex][rIndex];
   }
-  
+
   /**
    * Return the dimensions of a magnitude-dependent and width-constrained
    * rupture.
diff --git a/src/gov/usgs/earthquake/nshmp/eq/model/GmmSet.java b/src/gov/usgs/earthquake/nshmp/eq/model/GmmSet.java
index 993f3f42fc20fb60852a3592cc8437b086d53ca4..0dc15ffb1216817595096296b26705b9083ac2fb 100644
--- a/src/gov/usgs/earthquake/nshmp/eq/model/GmmSet.java
+++ b/src/gov/usgs/earthquake/nshmp/eq/model/GmmSet.java
@@ -57,7 +57,7 @@ public final class GmmSet {
       double maxDistHi,
       double[] epiValues,
       double[] epiWeights) {
-    
+
     this.weightMapLo = weightMapLo;
     this.maxDistLo = maxDistLo;
     this.weightMapHi = weightMapHi;
diff --git a/src/gov/usgs/earthquake/nshmp/eq/model/PointSource.java b/src/gov/usgs/earthquake/nshmp/eq/model/PointSource.java
index 1d7bb0f61ee598ca8d815be7b13c772080fd55bc..e85d04fd322f5846dc6a892b543fbe6cfd5e7240 100644
--- a/src/gov/usgs/earthquake/nshmp/eq/model/PointSource.java
+++ b/src/gov/usgs/earthquake/nshmp/eq/model/PointSource.java
@@ -97,8 +97,9 @@ class PointSource implements Source {
   public String name() {
     return "PointSource: " + formatLocation(loc);
   }
-  
+
   static final String FORMAT = "%.3f, %.3f";
+
   static String formatLocation(Location loc) {
     return String.format(FORMAT, loc.lon(), loc.lat());
   }
diff --git a/src/gov/usgs/earthquake/nshmp/eq/model/PointSources.java b/src/gov/usgs/earthquake/nshmp/eq/model/PointSources.java
index 2148a5f2806bdc54e9fae395e15d64124a5b5a1a..b6a2f6281d3098c5271b245e3d43fd45c1596f08 100644
--- a/src/gov/usgs/earthquake/nshmp/eq/model/PointSources.java
+++ b/src/gov/usgs/earthquake/nshmp/eq/model/PointSources.java
@@ -57,7 +57,7 @@ public class PointSources {
         rupScaling,
         magDepthMap,
         maxDepth);
-    
+
     return HazardCalcs.sourceToInputs(site).apply(source);
   }
 
@@ -91,7 +91,7 @@ public class PointSources {
         rupScaling,
         magDepthMap,
         maxDepth);
-    
+
     List<InputList> inputsList = new ArrayList<>();
     for (Site site : sites) {
       InputList inputs = HazardCalcs.sourceToInputs(site).apply(source);
@@ -116,13 +116,13 @@ public class PointSources {
 
     Source source = pointSource(
         sourceType,
-        PointSourceType.FINITE, 
-        loc, 
-        mfd, 
-        mechWtMap, 
+        PointSourceType.FINITE,
+        loc,
+        mfd,
+        mechWtMap,
         grid.rupScaling,
         grid.depthModel);
-    
+
     return finiteInputs(sites, source);
   }
 
diff --git a/src/gov/usgs/earthquake/nshmp/eq/model/Source.java b/src/gov/usgs/earthquake/nshmp/eq/model/Source.java
index 5294e30d29e48c4625e3ae80a84be12b221103c1..2308335b9e5f004439b44a7ec6033e62dca35795 100644
--- a/src/gov/usgs/earthquake/nshmp/eq/model/Source.java
+++ b/src/gov/usgs/earthquake/nshmp/eq/model/Source.java
@@ -25,7 +25,7 @@ public interface Source extends Named, Iterable<Rupture> {
    * A numeric identifier for this {@code Source}.
    */
   int id();
-  
+
   /**
    * The {@code SourceType} identifier.
    */
@@ -42,5 +42,5 @@ public interface Source extends Named, Iterable<Rupture> {
    * The MFDs that define earthquake rates for this source.
    */
   List<XySequence> mfds();
-  
+
 }
diff --git a/src/gov/usgs/earthquake/nshmp/eq/model/SystemSectionParser.java b/src/gov/usgs/earthquake/nshmp/eq/model/SystemSectionParser.java
index 33e94df81bed0cf05cafb4e0465b6cbeb8aa121b..39523acf0bbc8503d863a61feadd53641e36b08a 100644
--- a/src/gov/usgs/earthquake/nshmp/eq/model/SystemSectionParser.java
+++ b/src/gov/usgs/earthquake/nshmp/eq/model/SystemSectionParser.java
@@ -112,7 +112,7 @@ class SystemSectionParser extends DefaultHandler {
          * NOTE: currently, section indices are ordered ascending from zero; if
          * this were to change we'd need agregate a list of indices as well.
          */
-          
+
         case SECTION:
           surfaceBuilder = DefaultGriddedSurface.builder();
           String sectionName = readString(NAME, atts);
@@ -184,11 +184,11 @@ class SystemSectionParser extends DefaultHandler {
   public void setDocumentLocator(Locator locator) {
     this.locator = locator;
   }
-  
+
   /*
    * TODO for consistency during development we have kept the original (long)
-   * UCERF3 section names in fault_sections.xml but it might make sense down
-   * the road to update the source file rather thna clean the name here.
+   * UCERF3 section names in fault_sections.xml but it might make sense down the
+   * road to update the source file rather thna clean the name here.
    */
   private static String cleanName(String name) {
     return name.replace(" 2011 CFM", "").replace(", Subsection ", " [") + "]";
diff --git a/src/gov/usgs/earthquake/nshmp/etc/HazMatSpectrum.java b/src/gov/usgs/earthquake/nshmp/etc/HazMatSpectrum.java
index 4a89a6cda91079b359cba6aa58d2237dea57c007..e647fce142223a769a59a8c201f1bf0a1b90e6cf 100644
--- a/src/gov/usgs/earthquake/nshmp/etc/HazMatSpectrum.java
+++ b/src/gov/usgs/earthquake/nshmp/etc/HazMatSpectrum.java
@@ -10,7 +10,7 @@ public class HazMatSpectrum {
   public double[] periods;
   public double[] means;
   public double[] sigmas;
-  
+
   @Override
   public String toString() {
     return new StringBuilder("HazMatSpectrum: ")
diff --git a/src/gov/usgs/earthquake/nshmp/geo/package-info.java b/src/gov/usgs/earthquake/nshmp/geo/package-info.java
index 60c53ffd1114c277ee96c9521360e1abebe383c9..f894fe4e63ff1b496821b2823fa160a04cdad1a0 100644
--- a/src/gov/usgs/earthquake/nshmp/geo/package-info.java
+++ b/src/gov/usgs/earthquake/nshmp/geo/package-info.java
@@ -8,9 +8,9 @@
  * results for most regions of the globe, situations may arise in which users
  * encounter unexpected behaviour and results. For instance, the 'fast'
  * algorithms in {@link gov.usgs.earthquake.nshmp.geo.Locations} (e.g.
- * {@link gov.usgs.earthquake.nshmp.geo.Locations#horzDistanceFast(Location, Location)}) will
- * not produce accurate results when used in close proximity to the poles or
- * when locations span the antimeridian (the -180° +180° transition). In such
+ * {@link gov.usgs.earthquake.nshmp.geo.Locations#horzDistanceFast(Location, Location)}
+ * ) will not produce accurate results when used in close proximity to the poles
+ * or when locations span the antimeridian (the -180° +180° transition). In such
  * cases, users should consider substituting slower, but more accurate
  * algorithms. In the latter case, one could alternatively opt to use locations
  * referenced to 0° to 360° instead. Exceptional behavior is well documented in
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/AtkinsonMacias_2009.java b/src/gov/usgs/earthquake/nshmp/gmm/AtkinsonMacias_2009.java
index a500866b8a005fd83ad6a727bd3e1bbf75d28933..cfec610ff83318bf054c466e38c3765339060c25 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/AtkinsonMacias_2009.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/AtkinsonMacias_2009.java
@@ -41,11 +41,10 @@ import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints;
  * @see Gmm#AM_09_INTER
  */
 public final class AtkinsonMacias_2009 implements GroundMotionModel {
-  
+
   /*
-   * TODO 0.75s interpolated period coefficients added that should
-   * be removed if a viable on-the-fly interpolation algorithm is 
-   * added.
+   * TODO 0.75s interpolated period coefficients added that should be removed if
+   * a viable on-the-fly interpolation algorithm is added.
    */
 
   static final String NAME = "Atkinson & Macias (2009): Interface";
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/Atkinson_2010.java b/src/gov/usgs/earthquake/nshmp/gmm/Atkinson_2010.java
index f9de0f91631b22eea3ff112f0b5e1799afcf717f..19719e673de3168b114b80616411b149b127349f 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/Atkinson_2010.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/Atkinson_2010.java
@@ -61,7 +61,7 @@ public final class Atkinson_2010 implements GroundMotionModel {
 
   private final GroundMotionModel delegate;
   private final double log10freq;
-  
+
   Atkinson_2010(final Imt imt) {
     delegate = Gmm.BA_08.instance(imt);
     log10freq = log10(imt.frequency());
@@ -72,7 +72,7 @@ public final class Atkinson_2010 implements GroundMotionModel {
     double μ = delegate.calc(in).mean() + hiTerm(in.rJB, in.zTop);
     return DefaultScalarGroundMotion.create(μ, σ);
   }
-  
+
   private double hiTerm(double rJB, double zTop) {
     double x1 = min(-0.18 + 0.17 * log10freq, 0.0);
     double x0 = 0.2;
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/Campbell_1997.java b/src/gov/usgs/earthquake/nshmp/gmm/Campbell_1997.java
index 48aedcf51a51c0487240171431dcd975ba8ff825..e8a583baac0e4f2a586e137c486e06335458f466 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/Campbell_1997.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/Campbell_1997.java
@@ -143,10 +143,10 @@ public class Campbell_1997 implements GroundMotionModel {
       final double rSeis,
       final double μPga) {
 
-    return μPga + c.c1 + 
-        c.c2 * tanh(c.c3 * (Mw - 4.7)) + 
-        (c.c4 + (c.c5 * Mw)) * rSeis + 
-        (0.5 * c.c6) + 
+    return μPga + c.c1 +
+        c.c2 * tanh(c.c3 * (Mw - 4.7)) +
+        (c.c4 + (c.c5 * Mw)) * rSeis +
+        (0.5 * c.c6) +
         c.c7 * tanh(c.c8);
   }
 
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/Gmm.java b/src/gov/usgs/earthquake/nshmp/gmm/Gmm.java
index 6bb24847faaba17f515a8f0fa6033b720d58e32b..2e97bb53f64dc0565b5adc4cf6a8a7a407f68bbd 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/Gmm.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/Gmm.java
@@ -453,7 +453,7 @@ public enum Gmm {
       Atkinson_2015.NAME,
       Atkinson_2015.COEFFS,
       Atkinson_2015.CONSTRAINTS),
-  
+
   /** @see GraizerKalkan_2015 */
   GK_15(
       GraizerKalkan_2015.class,
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/GmmInput.java b/src/gov/usgs/earthquake/nshmp/gmm/GmmInput.java
index d2736483926a5885d3b846eb7129469b865d7dff..cecc26b2fabe46b4ce8702c2c58bfccdbc5d3060 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/GmmInput.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/GmmInput.java
@@ -540,7 +540,7 @@ public class GmmInput {
         .add(Z2P5.toString(), z2p5)
         .toString();
   }
-  
+
   /**
    * The constraints associated with each {@code GmmInput} field. All methods
    * return an {@link Optional} whose {@link Optional#isPresent()} method will
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/GmmUtils.java b/src/gov/usgs/earthquake/nshmp/gmm/GmmUtils.java
index 30ded8e5be52a7241139ca7e0ad5876c65a8d8f2..9e9d73c99a51605b3c14c0fb5ea0eaa5e2056e20 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/GmmUtils.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/GmmUtils.java
@@ -75,7 +75,8 @@ public final class GmmUtils {
 
   private static String datPath = "etc/";
   // private static String rjbDatPath = datPath + "rjbmean.dat"; // relocated
-  private static String rjbDatPath = "/gov/usgs/earthquake/nshmp/eq/fault/surface/etc/rjb_wc94length.dat";
+  private static String rjbDatPath =
+      "/gov/usgs/earthquake/nshmp/eq/fault/surface/etc/rjb_wc94length.dat";
   private static String cbhwDatPath = datPath + "avghw_cb.dat";
   private static String cyhwDatPath = datPath + "avghw_cy.dat";
 
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/McVerryEtAl_2000.java b/src/gov/usgs/earthquake/nshmp/gmm/McVerryEtAl_2000.java
index b3bfd1c11ef2d877c26a32f6cc330530167f51eb..599a2439d41264c1a8fdc4e28dc9daa3ddfd38ee 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/McVerryEtAl_2000.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/McVerryEtAl_2000.java
@@ -56,8 +56,7 @@ import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints;
  * <p><b>Reference:</b> McVerry, G.H., Zhao, J.X., Abrahamson, N.A., and
  * Somerville, P.G., 2000, New Zealand acceleration response spectrum
  * attenuation relations for crustal and subduction zone earthquakes: Bulletin
- * of the New Zealand Society of Earthquake Engineering, v. 39, n. 4, p.
- * 1-58.
+ * of the New Zealand Society of Earthquake Engineering, v. 39, n. 4, p. 1-58.
  *
  * <p><b>Component:</b> Model supports geometric mean or maximum of two
  * horizontal components; only concrete implementations of max-horizontal
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/MultiScalarGroundMotion.java b/src/gov/usgs/earthquake/nshmp/gmm/MultiScalarGroundMotion.java
index 20b9fcff2340f2c690b2da3b7c5a3055e4964364..e94af070bfd267d89cda4fa65b6fa28f39160180 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/MultiScalarGroundMotion.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/MultiScalarGroundMotion.java
@@ -18,7 +18,7 @@ public class MultiScalarGroundMotion extends DefaultScalarGroundMotion {
 
   // TODO array exposure is dangerous and should be changed in favor of
   // immutable lists; this is agood candidate for immutable DataArrays
-  
+
   // TODO can we avoid instanceof tests in exceedance/probabilityModle enums
 
   private final double[] means;
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/MunsonThurber_1997.java b/src/gov/usgs/earthquake/nshmp/gmm/MunsonThurber_1997.java
index a121fd2b23b890ea7c26dbabc5db814521e48ba4..265494bff0c98d360c0604c6f97480791c288507 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/MunsonThurber_1997.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/MunsonThurber_1997.java
@@ -22,10 +22,10 @@ import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints;
  * Vs30 = 650 m/s of the lava site velocity (C. Thurber, personal comm., 1998).
  * 
  * <p><b>Note:</b> This GMM is only valid for PGA and 0.2 seconds. 0.2 is
- * supported through the linear scaling of log PGA ground motion. Also,
- * for larger magnitudes (M > 7), an additional magnitude term derived from
- * Boore, Joyner, and Fumal 1993) is applied. See also the 1998 Hawaii NSHM
- * <a href="http://earthquake.usgs.gov/hazards/products/hi/1998/documentation/">
+ * supported through the linear scaling of log PGA ground motion. Also, for
+ * larger magnitudes (M > 7), an additional magnitude term derived from Boore,
+ * Joyner, and Fumal 1993) is applied. See also the 1998 Hawaii NSHM <a
+ * href="http://earthquake.usgs.gov/hazards/products/hi/1998/documentation/">
  * documentation</a>.
  *
  * <p><b>Note:</b> Direct instantiation of {@code GroundMotionModel}s is
@@ -83,11 +83,11 @@ public final class MunsonThurber_1997 implements GroundMotionModel {
     double μBase10 = B0 + magTerm(Mw) + (B2 * r) - log10(r);
     return μBase10 * BASE_10_TO_E;
   }
-  
+
   private static double magTerm(double Mw) {
     if (Mw <= 7.0) {
       return B1 * (Mw - 6.0);
-    } else if (Mw <=7.7) {
+    } else if (Mw <= 7.7) {
       return B1 + B1_BJF * (Mw - 7.0);
     } else {
       return B1 + B1_BJF * 0.7;
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/SadighEtAl_1997.java b/src/gov/usgs/earthquake/nshmp/gmm/SadighEtAl_1997.java
index 04ff7af27be4c873ec2497a8474528e7a213d3d3..b9fa3100dc58f8ba5ae68948c3b9c6a556d35598 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/SadighEtAl_1997.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/SadighEtAl_1997.java
@@ -114,7 +114,7 @@ public class SadighEtAl_1997 implements GroundMotionModel {
 
     /* Modified to saturate above Mw=8.5 */
     double Mw = min(in.Mw, 8.5);
-    
+
     if (in.vs30 > VS30_CUT) {
       /* Rock */
       Coefficients c = Mw <= 6.5 ? coeffs_bc_lo : coeffs_bc_hi;
@@ -140,10 +140,10 @@ public class SadighEtAl_1997 implements GroundMotionModel {
 
     double lnY =
         c.c1r +
-        c.c2 * Mw +
-        c.c3 * pow(M_CUT - Mw, 2.5) +
-        c.c4 * log(rRup + exp(c.c5 + c.c6r * Mw)) +
-        c.c7 * log(rRup + 2);
+            c.c2 * Mw +
+            c.c3 * pow(M_CUT - Mw, 2.5) +
+            c.c4 * log(rRup + exp(c.c5 + c.c6r * Mw)) +
+            c.c7 * log(rRup + 2);
 
     /* Scale reverse amplitudes by 1.2; 0.18232 = ln(1.2) */
     return (style == REVERSE) ? lnY + 0.18232 : lnY;
@@ -155,9 +155,9 @@ public class SadighEtAl_1997 implements GroundMotionModel {
     double c1 = (style == REVERSE) ? c.c1r : c.c1ss;
     double c6 = (style == REVERSE) ? c.c6r : c.c6ss;
 
-    return c1 + 
-        c.c2 * Mw - 
-        c.c3 * log(rRup + c.c4 * exp(c.c5 * Mw)) + 
+    return c1 +
+        c.c2 * Mw -
+        c.c3 * log(rRup + c.c4 * exp(c.c5 * Mw)) +
         c6 +
         c.c7 * pow(M_CUT - Mw, 2.5);
   }
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/WongEtAl_2015.java b/src/gov/usgs/earthquake/nshmp/gmm/WongEtAl_2015.java
index 96db759b3d8c142d90da8dc83cbf023bc7377394..d4cfdba7e2ffb34c1d4b1994117902cbee81ebab 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/WongEtAl_2015.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/WongEtAl_2015.java
@@ -49,7 +49,7 @@ public final class WongEtAl_2015 implements GroundMotionModel {
       .build();
 
   private static final double R_MIN = 20.0;
-  
+
   static final CoefficientContainer COEFFS = new CoefficientContainer("Wong15.csv");
 
   private static final class Coefficients {
diff --git a/src/gov/usgs/earthquake/nshmp/gmm/package-info.java b/src/gov/usgs/earthquake/nshmp/gmm/package-info.java
index 467f944cb6bdd6bd3e739232e4e89acaf1cbb634..d3bdd5c7ff89d5bcbaf4e75eeefd1ffc2f09d6b4 100644
--- a/src/gov/usgs/earthquake/nshmp/gmm/package-info.java
+++ b/src/gov/usgs/earthquake/nshmp/gmm/package-info.java
@@ -1,12 +1,14 @@
 /**
- * Implementations of all {@link gov.usgs.earthquake.nshmp.gmm.GroundMotionModel}s used in
- * the 2008 and 2014 USGS National Seismic Hazard Models.
+ * Implementations of all
+ * {@link gov.usgs.earthquake.nshmp.gmm.GroundMotionModel}s used in the 2008 and
+ * 2014 USGS National Seismic Hazard Models.
  *
  * <p>Most of the model implementations in this package may not be instantiated
  * directly. Rather, instances of each are/should be obtained via
- * {@link gov.usgs.earthquake.nshmp.gmm.Gmm#instance(Imt)}. The various models are exposed
- * publicly for the sake of documentation. In many cases, the public
+ * {@link gov.usgs.earthquake.nshmp.gmm.Gmm#instance(Imt)}. The various models
+ * are exposed publicly for the sake of documentation. In many cases, the public
  * implementations are {@code abstract}, and there are a variety of model
- * flavors that are available via the {@link gov.usgs.earthquake.nshmp.gmm.Gmm} enum.
+ * flavors that are available via the {@link gov.usgs.earthquake.nshmp.gmm.Gmm}
+ * enum.
  */
 package gov.usgs.earthquake.nshmp.gmm;
diff --git a/src/gov/usgs/earthquake/nshmp/internal/BinaryCurves.java b/src/gov/usgs/earthquake/nshmp/internal/BinaryCurves.java
index 38b472e9f3ab3a4ebae7e4f429088b57447aaec2..27bbcfa77eb08904debdf6dc39db0e2630d9256d 100644
--- a/src/gov/usgs/earthquake/nshmp/internal/BinaryCurves.java
+++ b/src/gov/usgs/earthquake/nshmp/internal/BinaryCurves.java
@@ -321,7 +321,7 @@ class BinaryCurves {
     double vs30 = 760.0;
     double basinDepth = 2.0;
     double spacing = 0.1;
-    
+
     // TODO replace with Bounds??
     double lonMin = 0;
     double lonMax = 0;
@@ -330,7 +330,6 @@ class BinaryCurves {
 
   }
 
-
   private static final int MAX_IML_COUNT = 20;
   private static final int HEADER_OFFSET = 1664; // bytes
   private static final int INFO_LINE_SIZE = 128; // chars
@@ -346,20 +345,18 @@ class BinaryCurves {
     private final int curveCount;
     private final FileChannel channel;
 
-
     public Writer(Path path, Metadata meta) throws IOException {
       checkArgument(meta.imls.length <= MAX_IML_COUNT);
       this.path = path;
       this.meta = meta;
       this.curveCount = curveCount(meta);
       this.channel = FileChannel.open(path, WRITE);
-      
-      //init with 0's
-//      int 
+
+      // init with 0's
+      // int
       this.channel.write(createHeader());
       this.channel.write(ByteBuffer.allocate(curveCount * MAX_IML_COUNT));
     }
-    
 
     /* Header occupies 1664 bytes total */
     private ByteBuffer createHeader() {
@@ -400,13 +397,13 @@ class BinaryCurves {
 
       return buf;
     }
-    
+
     private static int curveCount(Metadata m) {
       int lonDim = (int) Math.rint((m.lonMax - m.lonMin) / m.spacing + 1);
       int latDim = (int) Math.rint((m.latMax - m.latMin) / m.spacing + 1);
       return lonDim * latDim;
     }
-    
+
     /*
      * Compute the target position of a curve in a binary file. NSHMP binary
      * files index ascending in longitude, but descending in latitude.
diff --git a/src/gov/usgs/earthquake/nshmp/internal/NshmpPolygon.java b/src/gov/usgs/earthquake/nshmp/internal/NshmpPolygon.java
index f933c04cc0209b528aa87752a82ba51d071e7aa5..d0c9d668c2dedb6a305ddf94e43d393fad9c8f12 100644
--- a/src/gov/usgs/earthquake/nshmp/internal/NshmpPolygon.java
+++ b/src/gov/usgs/earthquake/nshmp/internal/NshmpPolygon.java
@@ -13,7 +13,7 @@ public enum NshmpPolygon {
   CEUS_CLIP(Data.CEUS_CLIP, "Central & Eastern US Map Extents"),
   WUS_CLIP(Data.WUS_CLIP, "Western US Map Extents"),
   AK_CLIP(Data.AK_CLIP, "Alaska Map Extents"),
-  
+
   CONTERMINOUS_US(Data.CONTERMINOUS, "Conterminous US"),
 
   LA_BASIN(Data.WG_07_LA, "Los Angeles Basin – WGCEP 2007"),
diff --git a/src/gov/usgs/earthquake/nshmp/internal/NshmpSite.java b/src/gov/usgs/earthquake/nshmp/internal/NshmpSite.java
index 020967ae189ef358975d7ef01593ba1766eb05f8..e398b100988945362a794819532c8a0e9c49c385 100644
--- a/src/gov/usgs/earthquake/nshmp/internal/NshmpSite.java
+++ b/src/gov/usgs/earthquake/nshmp/internal/NshmpSite.java
@@ -258,7 +258,7 @@ public enum NshmpSite implements NamedLocation {
     String label = Parsing.enumLabelWithSpaces(this, true);
     if (label.startsWith("Mc")) {
       StringBuilder sb = new StringBuilder(label);
-      sb.setCharAt(2, Character.toUpperCase(sb.charAt(2))); 
+      sb.setCharAt(2, Character.toUpperCase(sb.charAt(2)));
       label = sb.toString();
     }
     int stripIndex = label.lastIndexOf(' ');
diff --git a/src/gov/usgs/earthquake/nshmp/internal/NshmpSiteFiles.java b/src/gov/usgs/earthquake/nshmp/internal/NshmpSiteFiles.java
index 2d044c7394b5dd702552ded153d2c76ba6134fd2..f26707c04749f2f80c5a094481aff3acfbb583c5 100644
--- a/src/gov/usgs/earthquake/nshmp/internal/NshmpSiteFiles.java
+++ b/src/gov/usgs/earthquake/nshmp/internal/NshmpSiteFiles.java
@@ -68,7 +68,7 @@ final class NshmpSiteFiles {
     writeSites("nureg", EnumSet.allOf(NuregSite.class), DEC3_FMT);
     writeCybershakeSites("cybershake", EnumSet.allOf(CybershakeSite.class));
 
-     writeNshmpPolys();
+    writeNshmpPolys();
     // writeNshmpSummaryPoly();
     // writeNshmpSites_0p1();
   }
@@ -89,7 +89,7 @@ final class NshmpSiteFiles {
     Path wusOut = EXPORT_DIR.resolve("map-wus.geojson");
     LocationList wusBounds = WUS_CLIP.coordinates();
     writePolyJson(wusOut, "NSHMP Western US", usCoords, 0.1, wusBounds);
-    
+
     // TODO AK needs to be updated with proper clipping region as above
     // currently just mercator rectangle
     writePolyJson(
@@ -98,7 +98,7 @@ final class NshmpSiteFiles {
         AK_CLIP.coordinates(),
         0.1,
         null);
-    
+
     writePolyJson(
         EXPORT_DIR.resolve("map-la-basin.geojson"),
         LA_BASIN.toString(),
diff --git a/src/gov/usgs/earthquake/nshmp/mfd/GutenbergRichterMfd.java b/src/gov/usgs/earthquake/nshmp/mfd/GutenbergRichterMfd.java
index 19388771275ae0fe1b4d5ab93b806e1c284a6801..6b7e26664d035e2a4cf7bd06b1fbc896e8982996 100644
--- a/src/gov/usgs/earthquake/nshmp/mfd/GutenbergRichterMfd.java
+++ b/src/gov/usgs/earthquake/nshmp/mfd/GutenbergRichterMfd.java
@@ -3,7 +3,7 @@ package gov.usgs.earthquake.nshmp.mfd;
 import static com.google.common.base.Preconditions.checkArgument;
 
 /**
- * <p>Title: GutenbergRichterMfd.java  <p>Description: This is a truncated
+ * <p>Title: GutenbergRichterMfd.java <p>Description: This is a truncated
  * incremental Gutenberg-Richter distribution. Note that magLower and magUpper
  * must exactly equal one of the descrete x-axis values.
  *
diff --git a/src/gov/usgs/earthquake/nshmp/mfd/YC_1985_CharMfd.java b/src/gov/usgs/earthquake/nshmp/mfd/YC_1985_CharMfd.java
index fec8c75948eef7718276a9e3af256f91a2536775..138c4911a48ac7fd01209083f2b05a837fccc9b2 100644
--- a/src/gov/usgs/earthquake/nshmp/mfd/YC_1985_CharMfd.java
+++ b/src/gov/usgs/earthquake/nshmp/mfd/YC_1985_CharMfd.java
@@ -5,7 +5,7 @@ import static com.google.common.base.Preconditions.checkArgument;
 import java.awt.geom.Point2D;
 
 /**
- * <p>Title: YC_1985_CharMfd.java 
+ * <p>Title: YC_1985_CharMfd.java
  *
  * <p>Description: This is the "characteristic" magnitude-frequency distribution
  * defined by Youngs and Coppersmith (1985, Bull. Seism. Soc. Am., 939-964). The
@@ -14,7 +14,7 @@ import java.awt.geom.Point2D;
  * Gutenberg-Richter part at (magPrime-deltaMagPrime). See their figure 10 for a
  * graphical explanation of these parameters. Note that magLower, magUpper,
  * magPrime, magUpper-deltaMagChar, and magPrime-deltaMagPrime must all be
- * exactly equal one of the descrete x-axis points. 
+ * exactly equal one of the descrete x-axis points.
  *
  * @author Edward H. Field Date: Sept. 26, 2002
  * @version 1.0