diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java
similarity index 85%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java
index 9c854547bc87a29b1bdbf37b61224db198708ce3..a473ab1b12bd1c29e3861143e7863c001bd0bb9f 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java
@@ -3,8 +3,8 @@ package gov.usgs.earthquake.nshmp.www.source;
 import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
 import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
-import gov.usgs.earthquake.nshmp.www.source.FeaturesService.Metadata;
-import gov.usgs.earthquake.nshmp.www.source.FeaturesService.RequestData;
+import gov.usgs.earthquake.nshmp.www.source.FeatureService.Metadata;
+import gov.usgs.earthquake.nshmp.www.source.FeatureService.RequestData;
 
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
@@ -31,10 +31,10 @@ import jakarta.inject.Inject;
  * @author U.S. Geological Survey
  */
 @Tag(
-    name = FeaturesService.NAME,
+    name = FeatureService.NAME,
     description = "USGS NSHM source model features service")
 @Controller("/features")
-public class FeaturesController {
+public class FeatureController {
 
   @Inject
   private NshmpMicronautServlet servlet;
@@ -52,11 +52,11 @@ public class FeaturesController {
   @Get
   public HttpResponse<String> doGetMetadata(HttpRequest<?> http) {
     try {
-      return FeaturesService.getMetadata(http);
+      return FeatureService.getMetadata(http);
     } catch (Exception e) {
       return ServletUtil.error(
-          FeaturesService.LOG, e,
-          FeaturesService.NAME,
+          FeatureService.LOG, e,
+          FeatureService.NAME,
           http.getUri().toString());
     }
   }
@@ -76,11 +76,11 @@ public class FeaturesController {
   @Get(uri = "/{id}")
   public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) {
     try {
-      return FeaturesService.getTree(http, id);
+      return FeatureService.getTree(http, id);
     } catch (Exception e) {
       return ServletUtil.error(
-          FeaturesService.LOG, e,
-          FeaturesService.NAME,
+          FeatureService.LOG, e,
+          FeatureService.NAME,
           http.getUri().toString());
     }
   }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java
similarity index 92%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java
index 786bafca4b3d0f955e91accaf7b6de3baa88d8ad..8b9433d95e81eff4e671a33f2ff527c20e32289b 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java
@@ -16,15 +16,15 @@ import io.micronaut.http.HttpResponse;
 import jakarta.inject.Singleton;
 
 /**
- * Source model tree feature handler for {@link FeaturesController}
+ * Source model tree feature handler for {@link FeatureController}
  *
  * @author U.S. Geological Survey
  */
 @Singleton
-public class FeaturesService {
+public class FeatureService {
 
   static final String NAME = "Model Features";
-  static final Logger LOG = LoggerFactory.getLogger(FeaturesService.class);
+  static final Logger LOG = LoggerFactory.getLogger(FeatureService.class);
 
   public static HttpResponse<String> getMetadata(HttpRequest<?> request) {
     var url = request.getUri().toString();
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java
similarity index 83%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesController.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java
index 971c66e80bbc529918c3c7b3427bbf83235870ce..ef53144379fc17544f82f4cc5f119b454550a7db 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java
@@ -3,8 +3,8 @@ package gov.usgs.earthquake.nshmp.www.source;
 import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
 import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
-import gov.usgs.earthquake.nshmp.www.source.SourceLogicTreesService.Metadata;
-import gov.usgs.earthquake.nshmp.www.source.SourceLogicTreesService.RequestData;
+import gov.usgs.earthquake.nshmp.www.source.LogicTreeService.Metadata;
+import gov.usgs.earthquake.nshmp.www.source.LogicTreeService.RequestData;
 
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
@@ -31,10 +31,10 @@ import jakarta.inject.Inject;
  * @author U.S. Geological Survey
  */
 @Tag(
-    name = SourceLogicTreesService.NAME,
+    name = LogicTreeService.NAME,
     description = "USGS NSHM source model logic tree service")
 @Controller("/trees")
-public class SourceLogicTreesController {
+public class LogicTreeController {
 
   @Inject
   private NshmpMicronautServlet servlet;
@@ -52,11 +52,11 @@ public class SourceLogicTreesController {
   @Get
   public HttpResponse<String> doGetMetadata(HttpRequest<?> http) {
     try {
-      return SourceLogicTreesService.getMetadata(http);
+      return LogicTreeService.getMetadata(http);
     } catch (Exception e) {
       return ServletUtil.error(
-          SourceLogicTreesService.LOG, e,
-          SourceLogicTreesService.NAME,
+          LogicTreeService.LOG, e,
+          LogicTreeService.NAME,
           http.getUri().toString());
     }
   }
@@ -76,11 +76,11 @@ public class SourceLogicTreesController {
   @Get(uri = "/{id}")
   public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) {
     try {
-      return SourceLogicTreesService.getTree(http, id);
+      return LogicTreeService.getTree(http, id);
     } catch (Exception e) {
       return ServletUtil.error(
-          SourceLogicTreesService.LOG, e,
-          SourceLogicTreesService.NAME,
+          LogicTreeService.LOG, e,
+          LogicTreeService.NAME,
           http.getUri().toString());
     }
   }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java
similarity index 91%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesService.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java
index 3f0fe6541bf47166bda144fe12484924935ffe6c..7de2b5f58595c2b01273dc02974f047564f19971 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java
@@ -16,15 +16,15 @@ import io.micronaut.http.HttpResponse;
 import jakarta.inject.Singleton;
 
 /**
- * Source model tree handler for {@link SourceLogicTreesController}
+ * Source model tree handler for {@link LogicTreeController}
  *
  * @author U.S. Geological Survey
  */
 @Singleton
-public class SourceLogicTreesService {
+public class LogicTreeService {
 
   static final String NAME = "Model Logic Trees";
-  static final Logger LOG = LoggerFactory.getLogger(SourceLogicTreesService.class);
+  static final Logger LOG = LoggerFactory.getLogger(LogicTreeService.class);
 
   public static HttpResponse<String> getMetadata(HttpRequest<?> request) {
     var url = request.getUri().toString();