diff --git a/src/org/opensha2/DeaggCalc.java b/src/org/opensha2/DeaggCalc.java
index 32347b9eafafd83e6dbf4b63f7d5c8203d731523..04523e393e1f0c592403bbe8b1db29e28fdbe45c 100644
--- a/src/org/opensha2/DeaggCalc.java
+++ b/src/org/opensha2/DeaggCalc.java
@@ -8,7 +8,7 @@ import org.opensha2.calc.CalcConfig;
 import org.opensha2.calc.HazardCalcs;
 import org.opensha2.calc.Deaggregation;
 import org.opensha2.calc.Hazard;
-import org.opensha2.calc.ResultHandler;
+import org.opensha2.calc.HazardExport;
 import org.opensha2.calc.Site;
 import org.opensha2.calc.Sites;
 import org.opensha2.calc.ThreadCount;
@@ -149,7 +149,7 @@ public class DeaggCalc {
 
     log.info(PROGRAM + ": calculating ...");
 
-    ResultHandler handler = ResultHandler.create(config, sites, log);
+    HazardExport handler = HazardExport.create(config, sites, log);
 
     for (Site site : sites) {
       Hazard hazard = HazardCalc.calc(model, config, site, executor);
diff --git a/src/org/opensha2/HazardCalc.java b/src/org/opensha2/HazardCalc.java
index 45b2de6bfcb53b72bf718d17b96da5bd3907145c..104a270e24d3bb41acb2529f80bec88d28f228da 100644
--- a/src/org/opensha2/HazardCalc.java
+++ b/src/org/opensha2/HazardCalc.java
@@ -8,7 +8,7 @@ import org.opensha2.calc.CalcConfig;
 import org.opensha2.calc.HazardCalcs;
 import org.opensha2.calc.Deaggregation;
 import org.opensha2.calc.Hazard;
-import org.opensha2.calc.ResultHandler;
+import org.opensha2.calc.HazardExport;
 import org.opensha2.calc.Site;
 import org.opensha2.calc.Sites;
 import org.opensha2.calc.ThreadCount;
@@ -174,7 +174,7 @@ public class HazardCalc {
 
     log.info(PROGRAM + ": calculating ...");
 
-    ResultHandler handler = ResultHandler.create(config, sites, log);
+    HazardExport handler = HazardExport.create(config, sites, log);
     for (Site site : sites) {
       Hazard hazard = calc(model, config, site, executor);
       handler.add(hazard, Optional.<Deaggregation> absent());
diff --git a/src/org/opensha2/calc/DeaggExport.java b/src/org/opensha2/calc/DeaggExport.java
index 56e81d2e2a13011e77b6c13746a58c4bd9521129..3a2b60a49a15b91dab5ea857ce71133ed39398e9 100644
--- a/src/org/opensha2/calc/DeaggExport.java
+++ b/src/org/opensha2/calc/DeaggExport.java
@@ -3,7 +3,7 @@ package org.opensha2.calc;
 import static java.lang.Math.exp;
 import static java.nio.charset.StandardCharsets.UTF_8;
 
-import static org.opensha2.calc.ResultHandler.WRITE;
+import static org.opensha2.calc.HazardExport.WRITE;
 import static org.opensha2.internal.TextUtils.NEWLINE;
 
 import org.opensha2.calc.CalcConfig.Deagg.Bins;
diff --git a/src/org/opensha2/calc/Hazard.java b/src/org/opensha2/calc/Hazard.java
index 0ff27cdf36cf2f43c7053ec2fb25ad6f00193fb1..f4e2c198b7f2bc6240a89933f2140a6eb4756620 100644
--- a/src/org/opensha2/calc/Hazard.java
+++ b/src/org/opensha2/calc/Hazard.java
@@ -26,11 +26,11 @@ import java.util.Map.Entry;
 /**
  * The result of a hazard calculation. This container class is public for
  * reference by external packages but is not directly modifiable, nor its fields
- * accessible. The {@link ResultHandler} class provides {@code Hazard} exporting
+ * accessible. The {@link HazardExport} class provides {@code Hazard} exporting
  * and processing utilities.
  *
  * @author Peter Powers
- * @see ResultHandler
+ * @see HazardExport
  */
 public final class Hazard {
 
diff --git a/src/org/opensha2/calc/ResultHandler.java b/src/org/opensha2/calc/HazardExport.java
similarity index 98%
rename from src/org/opensha2/calc/ResultHandler.java
rename to src/org/opensha2/calc/HazardExport.java
index c06b33906e46ce1e275b3dea00526e89361ed1e1..acc23bb76f8c20cec9994219d06f04b8207114cc 100644
--- a/src/org/opensha2/calc/ResultHandler.java
+++ b/src/org/opensha2/calc/HazardExport.java
@@ -8,7 +8,7 @@ import static java.nio.charset.StandardCharsets.US_ASCII;
 import static org.opensha2.data.XySequence.emptyCopyOf;
 
 import org.opensha2.calc.Deaggregation.ImtDeagg;
-import org.opensha2.calc.ResultHandler.Metadata.Builder;
+import org.opensha2.calc.HazardExport.Metadata.Builder;
 import org.opensha2.data.XySequence;
 import org.opensha2.eq.model.Source;
 import org.opensha2.eq.model.SourceSet;
@@ -55,7 +55,7 @@ import java.util.logging.Logger;
  *
  * @author Peter Powers
  */
-public final class ResultHandler {
+public final class HazardExport {
 
   static final String DEAGG_DIR = "deagg";
   static final String GMM_DIR = "gmm";
@@ -93,7 +93,7 @@ public final class ResultHandler {
   /* Only used for binary file export. */
   private final Map<Imt, Metadata> metaMap;
 
-  private ResultHandler(CalcConfig config, Sites sites, Logger log) throws IOException {
+  private HazardExport(CalcConfig config, Sites sites, Logger log) throws IOException {
     this.log = log;
     this.dir = createOutputDir(config.output.directory);
     this.config = config;
@@ -141,12 +141,12 @@ public final class ResultHandler {
    *         {@code config} but the {@code sites} container does not specify map
    *         extents.
    */
-  public static ResultHandler create(
+  public static HazardExport create(
       CalcConfig config,
       Sites sites,
       Logger log) throws IOException {
 
-    return new ResultHandler(config, sites, log);
+    return new HazardExport(config, sites, log);
   }
 
   /* Avoid clobbering exsting result directories via incrementing. */
diff --git a/src/org/opensha2/calc/RateResultHandler.java b/src/org/opensha2/calc/RateResultHandler.java
index 23c0ac2d50c0176de9a31473f856b66429a2a72d..a6114285687b1f259d740c140667e334120abffc 100644
--- a/src/org/opensha2/calc/RateResultHandler.java
+++ b/src/org/opensha2/calc/RateResultHandler.java
@@ -57,7 +57,7 @@ public final class RateResultHandler {
     // System.out.println(config.output.directory);
     // System.out.println(config.output.directory.toString());
     // System.out.println(config.output.directory.);
-    this.dir = ResultHandler.createOutputDir(improvedOutputDirectory(config));
+    this.dir = HazardExport.createOutputDir(improvedOutputDirectory(config));
     // ResultHandler.createOutputDir(config.output.directory.equals(CalcConfig.DEFAULT_OUT)
     // ? ()
     // : config.output.directory);
@@ -193,9 +193,9 @@ public final class RateResultHandler {
 
     Iterable<Double> emptyValues = Doubles.asList(new double[demo.totalMfd.size()]);
 
-    OpenOption[] options = firstBatch ? ResultHandler.WRITE : ResultHandler.APPEND;
+    OpenOption[] options = firstBatch ? HazardExport.WRITE : HazardExport.APPEND;
 
-    Function<Double, String> formatter = Parsing.formatDoubleFunction(ResultHandler.RATE_FMT);
+    Function<Double, String> formatter = Parsing.formatDoubleFunction(HazardExport.RATE_FMT);
 
     /* Line maps for ascii output; may or may not be used */
     List<String> totalLines = new ArrayList<>();
@@ -244,7 +244,7 @@ public final class RateResultHandler {
       }
 
       /* write/append */
-      Path totalFile = dir.resolve("total" + ResultHandler.TEXT_SUFFIX);
+      Path totalFile = dir.resolve("total" + HazardExport.TEXT_SUFFIX);
       Files.write(totalFile, totalLines, US_ASCII, options);
       if (exportSource) {
         Path typeDir = dir.resolve("source");
@@ -252,7 +252,7 @@ public final class RateResultHandler {
         for (Entry<SourceType, List<String>> typeEntry : typeLines.entrySet()) {
           SourceType type = typeEntry.getKey();
           String filename = type.toString();
-          Path typeFile = typeDir.resolve(filename + ResultHandler.TEXT_SUFFIX);
+          Path typeFile = typeDir.resolve(filename + HazardExport.TEXT_SUFFIX);
           Files.write(typeFile, typeEntry.getValue(), US_ASCII, options);
         }
       }