diff --git a/build.gradle b/build.gradle
index 7fe810d4017838c078b1d64d07204fe3499147bd..987a41acb9d9bcd3fa486b2338ec81b1b346d1f3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -29,13 +29,13 @@
 
 plugins {
   id "application"
-  id "com.diffplug.gradle.spotless" version "3.27.1"
-  id "com.github.spotbugs" version "3.0.0"
-  id "com.github.johnrengelman.shadow" version "5.2.0"
-  id "com.star-zero.gradle.githook" version "1.2.0"
+  id "com.diffplug.gradle.spotless" version "${spotlessVersion}"
+  id "com.github.spotbugs" version "${spotbugsVersion}"
+  id "com.github.johnrengelman.shadow" version "${shadowVersion}"
+  id "com.star-zero.gradle.githook" version "${githooksVersion}"
   id "eclipse-wtp"
   id "jacoco"
-  id "net.ltgt.apt-eclipse" version "0.21"
+  id "net.ltgt.apt-eclipse" version "${aptEclipseVersion}"
 }
 
 apply from: "${projectDir}/gradle/ext.gradle"
@@ -59,7 +59,7 @@ repositories {
 git {
   implementation("https://code.usgs.gov/ghsc/nshmp/nshmp-lib.git", {
     name "nshmp-haz-dep--nshmp-lib"
-    tag "v0.0.5"
+    tag "v0.1.1"
   })
 }
 
@@ -138,10 +138,11 @@ tasks.withType(JavaExec) {
 }
 
 /* Add HTML reports to SpotBugs */
-tasks.withType(com.github.spotbugs.SpotBugsTask) {
-  ignoreFailures = false // TODO remove when nshmp-lib is updated
+tasks.withType(com.github.spotbugs.snom.SpotBugsTask) {
   reports {
-    xml.enabled = false
-    html.enabled = true
+    html {
+      enabled true
+      stylesheet = 'fancy-hist.xsl'
+    }
   }
 }
diff --git a/gradle.properties b/gradle.properties
index 1cb947167a901745f496957700c5543597a7ca4f..a084e5af40dc5c00f5a6d68ac875b15a3f19c641 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,10 +1,15 @@
+aptEclipseVersion = 0.21
 awsEc2Version = 1.11.619
 awsLambdaCoreVersion = 1.1.0
 awsLambdaVersion = 1.11.461
 awsS3Version = 1.11.579
+githooksVersion = 1.2.0
 jacksonVersion = 2.9.0
 junitVersion = 5.5.2
 logbackVersion = 1.2.3
 mnOpenAPIVersion = 1.4.0
 mnVersion = 1.3.2
+shadowVersion = 5.2.0
+spotbugsVersion = 4.2.4
+spotlessVersion = 4.1.0
 swaggerVersion = 2.1.1
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultSliceLambda.java b/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultSliceLambda.java
index 813b121651f06815913be42513002691d97ad99d..5ba9a19fc1bec57f5bd3f45801f2ab846c3b19a5 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultSliceLambda.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultSliceLambda.java
@@ -43,7 +43,7 @@ import gov.usgs.earthquake.nshmp.www.services.ServletUtil;
 /**
  * AWS Lambda function to read in a curves file from AWS S3 and create slices at
  * return periods interest. <br>
- * 
+ *
  * The results are written to S3 as map.csv bucket.
  */
 @SuppressWarnings("unused")
@@ -174,7 +174,7 @@ public class HazardResultSliceLambda implements RequestStreamHandler {
     }
 
     return Site.builder()
-        .location(lat, lon)
+        .location(lon, lat)
         .name(name)
         .build();
   }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsSlicerLambda.java b/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsSlicerLambda.java
index 8178a79c432ec8ee8f684175bfd2c2e572d60e2b..f48d7babebb87882844c5f7dcfe8d41c24163153 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsSlicerLambda.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsSlicerLambda.java
@@ -36,7 +36,7 @@ import gov.usgs.earthquake.nshmp.www.services.ServletUtil;
 /**
  * AWS Lambda function to read in hazard results from S3 and to create slices of
  * return periods of interest.
- * 
+ *
  * @see HazardResultSliceLambda
  */
 @SuppressWarnings("unused")
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/etc/HazMat.java b/src/main/java/gov/usgs/earthquake/nshmp/etc/HazMat.java
index 05bdc38fc3b894ba379bf3f85fdf1ea4e4af9170..48ad5d38fee8ace623c512d869a69997a4a64824 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/etc/HazMat.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/etc/HazMat.java
@@ -12,7 +12,7 @@ public class HazMat {
 
   /*
    * Developer notes:
-   * 
+   *
    * Mathworks has gone out of its way to make it more and more difficult to use
    * Java in Matlab as time goes on, despite it being a first-class citizen.
    * Specifically, the Matlab classpath includes a dizzying number of 3rd party
@@ -26,14 +26,14 @@ public class HazMat {
    * it's dependency on Guava, but putting nshmp-haz early on the Matlab
    * classpath causes Matlab to crash as it can't find (now missing) methods in
    * Guava.
-   * 
+   *
    * The unsatisfactory but functional workaround is to use a custom class
    * loader that, once we want to use nshmp-haz classes, scans nshmp-haz.jar
    * before looking in the matlab classpath. This approach is messy in that the
    * sole point of entry is this class, which delegates to HazMatHelper (loaded
    * with the custom class loader) and the methods of which must be accessed via
    * reflection.
-   * 
+   *
    * Note that if nshmp-haz moves to Java 8, which will probably occur sooner
    * rather than later, the custom class loader will also have to have Java 8 on
    * it's classpath. Sigh.
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/site/CybershakeSite.java b/src/main/java/gov/usgs/earthquake/nshmp/site/CybershakeSite.java
index da0d03e04f32ac77c2e05b19eca80a8d77fb2f45..1cd89db28610eb0b868e9673ebd956cc73128b15 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/site/CybershakeSite.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/site/CybershakeSite.java
@@ -118,7 +118,7 @@ public enum CybershakeSite implements NamedLocation {
       double z1p0,
       double z2p5) {
 
-    this.loc = Location.create(lat, lon);
+    this.loc = Location.create(lon, lat);
     this.run = run;
     this.willsVs30 = willsVs30;
     this.cvmVs30 = cvmVs30;
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpPolygon.java b/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpPolygon.java
index 4c15b89fcba7ce7d275a63f43dce6b1dd23c79ea..ccc634578b6bd8931a7601b53ac4893499e59af8 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpPolygon.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpPolygon.java
@@ -55,7 +55,7 @@ public enum NshmpPolygon {
   private static LocationList createPolygon(double[][] coords) {
     LocationList.Builder locs = LocationList.builder();
     for (double[] coord : coords) {
-      locs.add(coord[1], coord[0]);
+      locs.add(coord[0], coord[1]);
     }
     return locs.build();
   }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpSite.java b/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpSite.java
index 7221fa82a600dac33c9ff03df60ee70e40421d14..27041e5f272a34d451acd5d21b77f56963163bc4 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpSite.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpSite.java
@@ -324,7 +324,7 @@ public enum NshmpSite implements NamedLocation {
   private final String label;
 
   private NshmpSite(double lon, double lat) {
-    this.location = Location.create(lat, lon);
+    this.location = Location.create(lon, lat);
     this.state = UsRegion.valueOf(name().substring(name().lastIndexOf('_') + 1));
     this.label = createLabel();
   }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpSiteFiles.java b/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpSiteFiles.java
index 2947000aca6d0ff823c3cae5a7d3886eabcc304d..796c767d17d0887354eda31f58f33d5a9c28d19a 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpSiteFiles.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/site/NshmpSiteFiles.java
@@ -439,8 +439,8 @@ final class NshmpSiteFiles {
           @Override
           public Location location() {
             return Location.create(
-                Maths.round(input.location().latitude, 1),
-                Maths.round(input.location().longitude, 1));
+                Maths.round(input.location().longitude, 1),
+                Maths.round(input.location().latitude, 1));
           }
 
           @Override
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/site/NuregSite.java b/src/main/java/gov/usgs/earthquake/nshmp/site/NuregSite.java
index b645547a9e4126c046a544769e833eff6ed29cfc..0aba72dce5ca47cc2b92fc9d00c5d4854f82ceea 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/site/NuregSite.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/site/NuregSite.java
@@ -26,7 +26,7 @@ public enum NuregSite implements NamedLocation {
   private final UsRegion state;
 
   private NuregSite(double lon, double lat) {
-    this.loc = Location.create(lat, lon);
+    this.loc = Location.create(lon, lat);
     this.state = UsRegion.valueOf(name().substring(name().lastIndexOf('_') + 1));
   }
 
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/DeaggEpsilonController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/DeaggEpsilonController.java
index df7472f331b7c56e392bd60ce07b0a22d8774c21..ab2976d4e2b23d2f3d1e8a54170458c3048a645e 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/DeaggEpsilonController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/DeaggEpsilonController.java
@@ -45,7 +45,7 @@ public class DeaggEpsilonController {
 
   /**
    * GET method to return usage or hazard curves, query based.
-   * 
+   *
    * @param request The HTTP request
    * @param longitude Longitude (in decimal degrees) ([-360, 360])
    * @param latitude Latitude (in decimal degrees) ([-90, 90])
@@ -82,7 +82,7 @@ public class DeaggEpsilonController {
 
   /**
    * GET method to return usage or hazard curves, slash based.
-   * 
+   *
    * @param request The HTTP request
    * @param longitude Longitude (in decimal degrees) ([-360, 360])
    * @param latitude Latitude (in decimal degrees) ([-90, 90])
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/HazardController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/HazardController.java
index 7a5b670104729bfdcc7626eaaeece15ed6696559..73942632e385a63c037ed4738c8d3f850bd5587d 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/HazardController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/HazardController.java
@@ -21,9 +21,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 
 /**
  * Micronaut controller for probabilistic seismic hazard calculations.
- * 
+ *
  * @see HazardService
- * 
+ *
  * @author U.S. Geological Survey
  */
 @Tag(
@@ -37,7 +37,7 @@ public class HazardController {
 
   /**
    * GET method to return the hazard usage.
-   * 
+   *
    * @param request The HTTP request
    */
   @Operation(
@@ -56,7 +56,7 @@ public class HazardController {
 
   /**
    * GET method to return usage or hazard curves, query based.
-   * 
+   *
    * @param request The HTTP request
    * @param longitude Longitude (in decimal degrees) ([-360, 360])
    * @param latitude Latitude (in decimal degrees) ([-90, 90])
@@ -88,7 +88,7 @@ public class HazardController {
 
   /**
    * GET method to return usage or hazard curves, slash based.
-   * 
+   *
    * @param request The HTTP request
    * @param longitude Longitude (in decimal degrees) ([-360, 360])
    * @param latitude Latitude (in decimal degrees) ([-90, 90])
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/RateController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/RateController.java
index e8830a4881cac3a2a599027e05dd18e8862d9b8e..caaa0379f2e9f611845f213a61ea538c6fcc4c20 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/RateController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/RateController.java
@@ -23,9 +23,9 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse;
 
 /**
  * Micronaut controller for rate and probability services.
- * 
+ *
  * @see RateService
- * 
+ *
  * @author U.S. Geological Survey
  */
 @Controller("/")
@@ -36,7 +36,7 @@ public class RateController {
 
   /**
    * GET method to return the usage information on the rate service.
-   * 
+   *
    * @param request The HTTP request
    */
   @Operation(
@@ -55,7 +55,7 @@ public class RateController {
 
   /**
    * GET method to compute annual-rate, query based.
-   * 
+   *
    * @param request The HTTP request
    * @param longitude Longitude (in decimal degrees) ([-360, 360])
    * @param latitude Latitude (in decimal degrees) ([-90, 90])
@@ -94,7 +94,7 @@ public class RateController {
 
   /**
    * GET method to compute annual-rate, slash based
-   * 
+   *
    * @param request The HTTP request
    * @param longitude Longitude (in decimal degrees) ([-360, 360])
    * @param latitude Latitude (in decimal degrees) ([-90, 90])
@@ -133,7 +133,7 @@ public class RateController {
 
   /**
    * GET method to return the usage information on the probability service.
-   * 
+   *
    * @param request The HTTP request
    */
   @Operation(
@@ -153,7 +153,7 @@ public class RateController {
 
   /**
    * GET method to compute probability, query based.
-   * 
+   *
    * @param request The HTTP request
    * @param longitude Longitude (in decimal degrees) ([-360, 360])
    * @param latitude Latitude (in decimal degrees) ([-90, 90])
@@ -197,7 +197,7 @@ public class RateController {
 
   /**
    * GET method to compute probability, slash based
-   * 
+   *
    * @param request The HTTP request
    * @param longitude Longitude (in decimal degrees) ([-360, 360])
    * @param latitude Latitude (in decimal degrees) ([-90, 90])
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/SourceController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/SourceController.java
index 8a2f74c6f8c3d1a95bce8acac59055ffacc88549..618b77b55d791b36f9fe0e27ebafa5c2b91f135f 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/SourceController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/SourceController.java
@@ -16,14 +16,14 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 
 /**
  * Source model service to return the current installed model.
- * 
+ *
  * <p> See src/main/resources/applicaiton.yml nshmp-haz.installed-model for
  * default model used
- * 
+ *
  * <p> To run the Micronaut jar file with a model: java -jar
  * path/to/nshmp-haz-v2-all.jar -model=<{@code Model}>
- * 
- * 
+ *
+ *
  * @author U.S. Geological Survey
  */
 @Tag(name = "Source Model")
@@ -35,7 +35,7 @@ public class SourceController {
 
   /**
    * GET method to return the source model usage
-   * 
+   *
    * @param request The HTTP request
    */
   @Operation(
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/meta/package-info.java b/src/main/java/gov/usgs/earthquake/nshmp/www/meta/package-info.java
index 891b3a5f7fed4a71f1519c7d70d0dcb84939efc5..ea198d9021ea597574e4079cd33275773279ff4c 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/meta/package-info.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/meta/package-info.java
@@ -1,6 +1,6 @@
 /**
  * Web-service metadata support classes.
- * 
+ *
  * <p>Classes in this package largely provide support for web services used on
  * the public facing USGS website. Services that are not public facing may use a
  * simpler metadata structure defined within the service class itself (e.g.
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/services/DeaggEpsilonService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/services/DeaggEpsilonService.java
index 9722ce1189313ce4e591df33987cad63f296f2f0..7ac915038fa8bb1bd7d9ecd106b53ced5e15dc92 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/services/DeaggEpsilonService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/services/DeaggEpsilonService.java
@@ -68,7 +68,7 @@ public final class DeaggEpsilonService {
   /**
    * Handler for {@link DeaggEpsilonController#doGetDeaggEpsilon}. Returns the
    * usage or the deagg result.
-   * 
+   *
    * @param query The query
    * @param urlHelper The URL helper
    */
@@ -180,7 +180,7 @@ public final class DeaggEpsilonService {
     @Override
     public Site apply(CalcConfig config) {
       return Site.builder()
-          .location(Location.create(data.latitude, data.longitude))
+          .location(Location.create(data.longitude, data.latitude))
           .basinDataProvider(data.basin ? basinUrl : null)
           .vs30(data.vs30.value())
           .build();
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/services/HazardService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/services/HazardService.java
index 8b36bc0bd977c3d5e13f53c7b57257cab14d07a3..9df7324c967e73faa84595ddfe6adf0cc7e58932 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/services/HazardService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/services/HazardService.java
@@ -54,7 +54,7 @@ public final class HazardService {
   /**
    * Handler for {@link HazardController#doGetUsage}. Returns the usage for the
    * hazard service.
-   * 
+   *
    * @param urlHelper The URL helper
    */
   public static HttpResponse<String> handleDoGetUsage(UrlHelper urlHelper) {
@@ -71,7 +71,7 @@ public final class HazardService {
   /**
    * Handler for {@link HazardController#doGetHazard}. Returns the usage or the
    * hazard result.
-   * 
+   *
    * @param query The query
    * @param urlHelper The URL helper
    */
@@ -128,7 +128,7 @@ public final class HazardService {
     public Site apply(CalcConfig config) {
       return Site.builder()
           .basinDataProvider(config.siteData.basinDataProvider)
-          .location(Location.create(data.latitude, data.longitude))
+          .location(Location.create(data.longitude, data.latitude))
           .vs30(data.vs30.value())
           .build();
     }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/services/RateService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/services/RateService.java
index ada84547e6c40a6e5be1d0173e54f341d7a3e8aa..272f69bdb8f789c7493cef79711bfe884ffd5ecd 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/services/RateService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/services/RateService.java
@@ -52,7 +52,7 @@ public final class RateService {
   /**
    * Handler for {@link RateController#doGetUsageRate} and
    * {@link RateController#doGetUsageProbability}.
-   * 
+   *
    * @param service The service
    * @param urlHelper The url helper
    */
@@ -70,7 +70,7 @@ public final class RateService {
    * Handler for {@link RateController#doGetProbability},
    * {@link RateController#doGetProbabilitySlash},
    * {@link RateController#doGetRate}, and {@link RateController#doGetRateSlash}
-   * 
+   *
    * @param service The service
    * @param query The query
    * @param urlHelper The url helper
@@ -114,7 +114,7 @@ public final class RateService {
 
   private static EqRate calc(Service service, RequestData data)
       throws InterruptedException, ExecutionException {
-    var location = Location.create(data.latitude, data.longitude);
+    var location = Location.create(data.longitude, data.latitude);
     var site = Site.builder().location(location).build();
     var futureRates = new ArrayList<ListenableFuture<EqRate>>();
 
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
index f7f49d44d2952daea8299b55ab83db65c8952f46..f74e41693090ae1b24cabe0642f4ec814564c4a1 100644
--- a/src/main/resources/logback.xml
+++ b/src/main/resources/logback.xml
@@ -3,7 +3,7 @@
   <appender name="STDOUT"
     class="ch.qos.logback.core.ConsoleAppender">
     <withJansi>true</withJansi>
-    <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder 
+    <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder
       by default -->
     <encoder>
       <pattern>%cyan(%d{HH:mm:ss.SSS}) %gray([%thread])
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/site/NshmpSiteTests.java b/src/test/java/gov/usgs/earthquake/nshmp/site/NshmpSiteTests.java
index f6c09d26608cd99399adb8aa611889ef4bb204cc..6d64067a381d7b156649f03330642888ae0b9d93 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/site/NshmpSiteTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/site/NshmpSiteTests.java
@@ -68,7 +68,7 @@ public class NshmpSiteTests {
   public final void methodsTest() {
     NshmpSite s = WASHINGTON_DC;
     assertEquals(s.state(), UsRegion.DC);
-    assertEquals(s.location(), Location.create(38.90, -77.05));
+    assertEquals(s.location(), Location.create(-77.05, 38.90));
     assertEquals(s.toString(), "Washington DC");
 
     s = MCGRATH_AK;