diff --git a/gradle.properties b/gradle.properties
index fd65d2e0cd7aaf975d6b61b1dbd9f091b2b6d4cf..f821af2f30423103645bfd91b42924c3f77f9c3a 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -8,7 +8,7 @@ junitVersion = 5.5.2
 micronautVersion = 2.4.1
 mnPluginVersion = 1.4.2
 nodeVersion = 3.0.1
-nshmpLibVersion = 0.6.1
+nshmpLibVersion = 0.7.0
 nshmpWsUtilsVersion = 0.1.2
 shadowVersion = 5.2.0
 spotbugsVersion = 4.2.4
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/DeaggCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/DeaggCalc.java
index 2ea4f3d51de9b4bec9b29a33cdc1a940138055e1..7f516914a0e690acaaa846687837ee3f492ce548 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/DeaggCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/DeaggCalc.java
@@ -97,7 +97,7 @@ public class DeaggCalc {
       log.info(config.toString());
 
       log.info("");
-      Sites sites = HazardCalc.readSites(args[1], config, log);
+      Sites sites = HazardCalc.readSites(args[1], config, model.siteData(), log);
       log.info("Sites: " + sites);
 
       double returnPeriod = Double.valueOf(args[2]);
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/DeaggEpsilon.java b/src/main/java/gov/usgs/earthquake/nshmp/DeaggEpsilon.java
index 562a384a158a1aabf79778d1c102ce4ff7014eae..c208ec73b130fccdfee8e29b51b6f1417f2e2ef7 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/DeaggEpsilon.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/DeaggEpsilon.java
@@ -109,7 +109,7 @@ public class DeaggEpsilon {
       }
       log.info(config.toString());
 
-      List<Site> sites = ImmutableList.copyOf(Sites.fromCsv(siteFile, config, true));
+      List<Site> sites = ImmutableList.copyOf(Sites.fromCsv(siteFile, config, model.siteData()));
       log.info("Sites: " + sites.size());
 
       log.info("Site data columns: " + colsToSkip);
@@ -134,11 +134,21 @@ public class DeaggEpsilon {
     }
   }
 
+  // TODO removed this set from Site; temp repair
+  static final Set<String> SITE_KEYS = ImmutableSet.of(
+      "name",
+      "lat",
+      "lon",
+      "vs30",
+      "vsInf",
+      "z1p0",
+      "z2p5");
+
   /* returns the number of site data columns are present. */
   private static int headerCount(Path path) throws IOException {
     String header = Files.lines(path).findFirst().get();
     Set<String> columns = ImmutableSet.copyOf(Splitter.on(',').trimResults().split(header));
-    return Sets.intersection(columns, Site.KEYS).size();
+    return Sets.intersection(columns, SITE_KEYS).size();
   }
 
   private static List<Imt> readImtList(Path path, int colsToSkip) throws IOException {
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/DeaggIml.java b/src/main/java/gov/usgs/earthquake/nshmp/DeaggIml.java
index e24795f3374af7ec00fe869ea6b2ddaa5c7359ae..e711d2ac0ede643c9be77f3db0a3394439d67e2f 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/DeaggIml.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/DeaggIml.java
@@ -98,7 +98,7 @@ public class DeaggIml {
       log.info(config.toString());
 
       log.info("");
-      Sites sites = HazardCalc.readSites(args[1], config, log);
+      Sites sites = HazardCalc.readSites(args[1], config, model.siteData(), log);
       log.info("Sites: " + sites);
 
       double iml = Double.valueOf(args[2]);
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/Hazard2018.java b/src/main/java/gov/usgs/earthquake/nshmp/Hazard2018.java
index 144a258ad7d9938a6f935804ec0714778ba93b78..1be075b4edfbc2929078b1b05cb04323c58db763 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/Hazard2018.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/Hazard2018.java
@@ -34,6 +34,7 @@ import gov.usgs.earthquake.nshmp.calc.Site;
 import gov.usgs.earthquake.nshmp.calc.Sites;
 import gov.usgs.earthquake.nshmp.internal.Logging;
 import gov.usgs.earthquake.nshmp.model.HazardModel;
+import gov.usgs.earthquake.nshmp.model.SiteData;
 
 /**
  * Compute probabilisitic seismic hazard for the 2018 Conterminous U.S. hazard
@@ -98,7 +99,7 @@ public class Hazard2018 {
       log.info(wusConfig.toString());
 
       log.info("");
-      Sites sites = readSites(args[1], wusConfig, log);
+      Sites sites = readSites(args[1], wusConfig, SiteData.EMPTY, log);
       log.info("Sites: " + sites);
 
       Models models = new Models(wusModel, wusConfig, ceusModel, ceusConfig);
@@ -119,19 +120,23 @@ public class Hazard2018 {
     }
   }
 
-  static Sites readSites(String arg, CalcConfig defaults, Logger log) {
+  static Sites readSites(
+      String arg,
+      CalcConfig defaults,
+      SiteData siteData,
+      Logger log) {
     try {
       if (arg.toLowerCase().endsWith(".csv")) {
         Path path = Paths.get(arg);
         log.info("Site file: " + path.toAbsolutePath().normalize());
-        return Sites.fromCsv(path, defaults);
+        return Sites.fromCsv(path, defaults, siteData);
       }
       if (arg.toLowerCase().endsWith(".geojson")) {
         Path path = Paths.get(arg);
         log.info("Site file: " + path.toAbsolutePath().normalize());
-        return Sites.fromJson(path, defaults);
+        return Sites.fromJson(path, defaults, siteData);
       }
-      return Sites.fromString(arg, defaults);
+      return Sites.fromString(arg, defaults, siteData);
     } catch (Exception e) {
       throw new IllegalArgumentException(NEWLINE +
           "    sites = \"" + arg + "\" must either be a 3 to 7 argument," + NEWLINE +
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
index b45944e03b9fc6b1d9731ba0c741df100655fe66..d18a2ebddcd0d0f4384f7dcab80c290976fb001f 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
@@ -32,6 +32,7 @@ import gov.usgs.earthquake.nshmp.calc.Sites;
 import gov.usgs.earthquake.nshmp.calc.ThreadCount;
 import gov.usgs.earthquake.nshmp.internal.Logging;
 import gov.usgs.earthquake.nshmp.model.HazardModel;
+import gov.usgs.earthquake.nshmp.model.SiteData;
 
 /**
  * Compute probabilisitic seismic hazard from a {@link HazardModel}.
@@ -108,7 +109,7 @@ public class HazardCalc {
       log.info(config.toString());
 
       log.info("");
-      Sites sites = readSites(args[1], config, log);
+      Sites sites = readSites(args[1], config, model.siteData(), log);
       log.info("Sites: " + sites);
 
       Path out = calc(model, config, sites, log);
@@ -131,19 +132,23 @@ public class HazardCalc {
     }
   }
 
-  static Sites readSites(String arg, CalcConfig defaults, Logger log) {
+  static Sites readSites(
+      String arg,
+      CalcConfig defaults,
+      SiteData siteData,
+      Logger log) {
     try {
       if (arg.toLowerCase().endsWith(".csv")) {
         Path path = Paths.get(arg);
         log.info("Site file: " + path.toAbsolutePath().normalize());
-        return Sites.fromCsv(path, defaults);
+        return Sites.fromCsv(path, defaults, siteData);
       }
       if (arg.toLowerCase().endsWith(".geojson")) {
         Path path = Paths.get(arg);
         log.info("Site file: " + path.toAbsolutePath().normalize());
-        return Sites.fromJson(path, defaults);
+        return Sites.fromJson(path, defaults, siteData);
       }
-      return Sites.fromString(arg, defaults);
+      return Sites.fromString(arg, defaults, siteData);
     } catch (Exception e) {
       throw new IllegalArgumentException(NEWLINE +
           "    sites = \"" + arg + "\" must either be a 3 to 7 argument," + NEWLINE +
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
index b0ccce12457576f64524d4248471e8aee85da0bc..3709e22e7b49bb1e3b8904e9aec2222c43585ba2 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
@@ -107,7 +107,7 @@ public class RateCalc {
       log.info(config.toString());
 
       log.info("");
-      Sites sites = HazardCalc.readSites(args[1], config, log);
+      Sites sites = HazardCalc.readSites(args[1], config, model.siteData(), log);
       log.info("Sites: " + sites);
 
       Path out = calc(model, config, sites, log);