diff --git a/gradle.properties b/gradle.properties
index 9cd9150294f5cbb3fb4e065953c01a8606e989ef..c193105e0c649ce5f2788889283d4fbb106b48b5 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -9,7 +9,7 @@ nodePluginVersion = 3.0.1
 nodeVersion = 16.3.0
 nshmFaultSectionsTag = v0.1
 nshmpLibVersion = 1.0.2
-nshmpWsUtilsVersion = 0.1.7
+nshmpWsUtilsVersion = 0.3.5
 shadowVersion = 7.1.2
 spotbugsVersion = 4.7.0
 spotlessVersion = 6.0.4
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/www/FaultSectionsControllerTests.java b/src/test/java/gov/usgs/earthquake/nshmp/www/FaultSectionsControllerTests.java
index 8d6bc03c271de0e10f3c68fffa7b6ef8ba02e822..dd4d0c8137bf498aef83f9c24971d823ba4cf9fa 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/www/FaultSectionsControllerTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/www/FaultSectionsControllerTests.java
@@ -33,7 +33,6 @@ import gov.usgs.earthquake.nshmp.www.fault.NshmFaultSection;
 import gov.usgs.earthquake.nshmp.www.meta.Status;
 import gov.usgs.earthquake.nshmp.www.services.FaultSectionsService.GroupData;
 import gov.usgs.earthquake.nshmp.www.services.FaultSectionsService.RequestData;
-
 import io.micronaut.http.HttpRequest;
 import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
 import jakarta.inject.Inject;
@@ -117,7 +116,7 @@ public class FaultSectionsControllerTests {
     Type type = new TypeToken<ResponseBody<String, String>>(
         ResponseBody.class) {}.getType();
     ResponseBody<String, JsonElement> res = GSON.fromJson(http.body(), type);
-    assertEquals(Status.ERROR, res.status());
+    assertEquals(Status.ERROR, res.getStatus());
   }
 
   private <E extends Enum<E>> void testGroupCall(E group) {
@@ -163,10 +162,10 @@ public class FaultSectionsControllerTests {
 
     ResponseBody<RequestData<GroupData>, JsonElement> res = GSON.fromJson(svcResponse, type);
 
-    assertEquals(Status.SUCCESS, res.status());
-    assertEquals(group.toString(), res.request().values.get(0).label);
-    assertEquals(group.name(), res.request().values.get(0).id);
-    FeatureCollection fc = GeoJson.from(res.response().toString()).toFeatureCollection();
+    assertEquals(Status.SUCCESS, res.getStatus());
+    assertEquals(group.toString(), res.getRequest().values.get(0).label);
+    assertEquals(group.name(), res.getRequest().values.get(0).id);
+    FeatureCollection fc = GeoJson.from(res.getResponse().toString()).toFeatureCollection();
     testRawResponse(faultSections, fc);
 
     if (group instanceof UsRegion) {
@@ -189,10 +188,10 @@ public class FaultSectionsControllerTests {
             .getType();
     ResponseBody<RequestData<Integer>, JsonElement> res = GSON.fromJson(svcResponse, type);
 
-    assertEquals(Status.SUCCESS, res.status());
+    assertEquals(Status.SUCCESS, res.getStatus());
     assertEquals(id, faultSections.get(0).id);
-    assertEquals(id, res.request().values.get(0));
-    FeatureCollection fc = GeoJson.from(res.response().toString()).toFeatureCollection();
+    assertEquals(id, res.getRequest().values.get(0));
+    FeatureCollection fc = GeoJson.from(res.getResponse().toString()).toFeatureCollection();
     testRawResponse(faultSections, fc);
   }
 
@@ -204,11 +203,11 @@ public class FaultSectionsControllerTests {
         .getType();
     ResponseBody<RequestData<String>, JsonElement> res = GSON.fromJson(svcResponse, type);
 
-    assertEquals(Status.SUCCESS, res.status());
+    assertEquals(Status.SUCCESS, res.getStatus());
     assertEquals(name,
         faultSections.get(0).name + " - " + faultSections.get(0).state.orElseThrow());
-    assertEquals(name, res.request().values.get(0));
-    FeatureCollection fc = GeoJson.from(res.response().toString()).toFeatureCollection();
+    assertEquals(name, res.getRequest().values.get(0));
+    FeatureCollection fc = GeoJson.from(res.getResponse().toString()).toFeatureCollection();
     testRawResponse(faultSections, fc);
   }
 
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/www/GpsControllerTests.java b/src/test/java/gov/usgs/earthquake/nshmp/www/GpsControllerTests.java
index b79f320197d1c3e17b543ae6fad16fc8cf0d5b9a..354cc5cd1ff3f8f446843cfff0d91a6cb8f57cd2 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/www/GpsControllerTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/www/GpsControllerTests.java
@@ -24,7 +24,6 @@ import gov.usgs.earthquake.nshmp.www.meta.Status;
 import gov.usgs.earthquake.nshmp.www.services.GpsService;
 import gov.usgs.earthquake.nshmp.www.services.GpsService.GpsFormat;
 import gov.usgs.earthquake.nshmp.www.services.GpsService.RequestData;
-
 import io.micronaut.http.HttpRequest;
 import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
 import jakarta.inject.Inject;
@@ -56,11 +55,11 @@ class GpsControllerTests {
   private static void httpTests(String http, GpsDataSet model, GpsFormat format) {
     if (format.equals(GpsFormat.JSON)) {
       ResponseBody<RequestData, JsonElement> response = GSON.fromJson(http, REQUEST_DATA_TYPE);
-      var actual = GeoJson.from(response.response().toString()).toFeatureCollection();
+      var actual = GeoJson.from(response.getResponse().toString()).toFeatureCollection();
 
-      assertEquals(Status.SUCCESS, response.status());
-      assertTrue(Status.SUCCESS.equals(response.status()));
-      assertNotEquals(Status.ERROR, response.status());
+      assertEquals(Status.SUCCESS, response.getStatus());
+      assertTrue(Status.SUCCESS.equals(response.getStatus()));
+      assertNotEquals(Status.ERROR, response.getStatus());
 
       testDataResponse(model, actual);
 
diff --git a/src/test/java/gov/usgs/earthquake/nshmp/www/GulfControllerTests.java b/src/test/java/gov/usgs/earthquake/nshmp/www/GulfControllerTests.java
index 4848bf0e4cdc2416c1ddbcdd26eb4569795ca27f..0ae99b803d8f8cff9e2f1d2a5476fd34f1a68aa5 100644
--- a/src/test/java/gov/usgs/earthquake/nshmp/www/GulfControllerTests.java
+++ b/src/test/java/gov/usgs/earthquake/nshmp/www/GulfControllerTests.java
@@ -19,7 +19,6 @@ import gov.usgs.earthquake.nshmp.www.gulf.GulfData.GulfDataResponse;
 import gov.usgs.earthquake.nshmp.www.gulf.GulfDataTests.GulfParameterizedTests;
 import gov.usgs.earthquake.nshmp.www.meta.Status;
 import gov.usgs.earthquake.nshmp.www.services.GulfService.RequestData;
-
 import io.micronaut.http.HttpRequest;
 import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
 import jakarta.inject.Inject;
@@ -58,13 +57,13 @@ class GulfControllerTests {
 
   private void httpTests(String http, Location loc, Double depth) {
     ResponseBody<RequestData, JsonElement> response = GSON.fromJson(http, REQUEST_DATA_TYPE);
-    var request = response.request();
+    var request = response.getRequest();
 
-    var actual = GSON.fromJson(response.response(), GulfDataResponse.class);
+    var actual = GSON.fromJson(response.getResponse(), GulfDataResponse.class);
 
-    assertEquals(Status.SUCCESS, response.status());
-    assertTrue(Status.SUCCESS.equals(response.status()));
-    assertNotEquals(Status.ERROR, response.status());
+    assertEquals(Status.SUCCESS, response.getStatus());
+    assertTrue(Status.SUCCESS.equals(response.getStatus()));
+    assertNotEquals(Status.ERROR, response.getStatus());
 
     // requests are for grid points, so no rounding is performed
     assertEquals(loc.longitude, request.longitude);