diff --git a/pom.xml b/pom.xml
index c8afded4fdb966f323be43e6b137e85814f499a8..2d7b27de3bcd08ed39915cee743cd54dd065acf9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -8,17 +8,17 @@
     <artifactId>git-eca</artifactId>
     <version>1.1.0</version>
     <properties>
-        <compiler-plugin.version>3.11.0</compiler-plugin.version>
+        <compiler-plugin.version>3.13.0</compiler-plugin.version>
         <maven.compiler.source>17</maven.compiler.source>
         <maven.compiler.target>17</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
         <quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id>
-        <quarkus.platform.version>3.8.6</quarkus.platform.version>
-        <surefire-plugin.version>3.1.2</surefire-plugin.version>
+        <quarkus.platform.version>3.15.3</quarkus.platform.version>
+        <surefire-plugin.version>3.3.1</surefire-plugin.version>
         <maven.compiler.parameters>true</maven.compiler.parameters>
-        <eclipse-api-version>1.1.6</eclipse-api-version>
+        <eclipse-api-version>1.2.0</eclipse-api-version>
         <auto-value.version>1.10.4</auto-value.version>
         <org.mapstruct.version>1.5.5.Final</org.mapstruct.version>
         <sonar.sources>src/main</sonar.sources>
diff --git a/src/main/java/org/eclipsefoundation/git/eca/helper/CommitHelper.java b/src/main/java/org/eclipsefoundation/git/eca/helper/CommitHelper.java
index 1a514cc91412fccb73009e47ef59c9fe3d706162..89482ae5a730ad5e0f0707893025fc0b086360ca 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/helper/CommitHelper.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/helper/CommitHelper.java
@@ -100,7 +100,7 @@ public class CommitHelper {
      * @return the project ID or the given default (empty string).
      */
     public static String getProjectId(Project p) {
-        return p != null ? p.getProjectId() : "";
+        return p != null ? p.projectId() : "";
     }
 
     private CommitHelper() {
diff --git a/src/main/java/org/eclipsefoundation/git/eca/helper/ProjectHelper.java b/src/main/java/org/eclipsefoundation/git/eca/helper/ProjectHelper.java
index 1c6e0aa22614538a2fe1b584f871961e90039893..4904adaf010245066a3a08fede436951af3235e9 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/helper/ProjectHelper.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/helper/ProjectHelper.java
@@ -21,8 +21,9 @@ import org.apache.commons.lang3.StringUtils;
 import org.eclipsefoundation.caching.service.CachingService;
 import org.eclipsefoundation.efservices.api.models.InterestGroup;
 import org.eclipsefoundation.efservices.api.models.Project;
-import org.eclipsefoundation.efservices.api.models.Project.GithubProject;
-import org.eclipsefoundation.efservices.api.models.Project.ProjectParticipant;
+import org.eclipsefoundation.efservices.api.models.ProjectBuilder;
+import org.eclipsefoundation.efservices.api.models.ProjectGithubProjectBuilder;
+import org.eclipsefoundation.efservices.api.models.ProjectProjectParticipantBuilder;
 import org.eclipsefoundation.efservices.services.ProjectService;
 import org.eclipsefoundation.git.eca.model.ValidationRequest;
 import org.eclipsefoundation.git.eca.namespace.ProviderType;
@@ -74,12 +75,12 @@ public final class ProjectHelper {
         // check if the website repo matches first, returning that project if it's found
         Optional<Project> siteProjectMatch = availableProjects
                 .stream()
-                .filter(p -> p.getWebsiteRepo().stream().anyMatch(r -> repoUrl.equals(r.getUrl())))
+                .filter(p -> p.websiteRepo().stream().anyMatch(r -> repoUrl.equals(r.url())))
                 .findFirst();
         if (siteProjectMatch.isPresent()) {
             LOGGER
                     .trace("Found website repo match for project '{}', assuming project and returning",
-                            siteProjectMatch.get().getProjectId());
+                            siteProjectMatch.get().projectId());
             return Arrays.asList(siteProjectMatch.get());
         }
 
@@ -93,7 +94,7 @@ public final class ProjectHelper {
             case GERRIT:
                 return availableProjects
                         .stream()
-                        .filter(p -> p.getGerritRepos().stream().anyMatch(re -> re.getUrl() != null && re.getUrl().endsWith(repoUrl)))
+                        .filter(p -> p.gerritRepos().stream().anyMatch(re -> re.url() != null && re.url().endsWith(repoUrl)))
                         .toList();
             default:
                 return Collections.emptyList();
@@ -110,7 +111,7 @@ public final class ProjectHelper {
             List<Project> availableProjects = projects.getAllProjects();
             availableProjects.addAll(adaptInterestGroups(projects.getAllInterestGroups()));
             return availableProjects;
-        }).getData().orElseGet(Collections::emptyList);
+        }).data().orElseGet(Collections::emptyList);
     }
 
     private List<Project> adaptInterestGroups(List<InterestGroup> igs) {
@@ -124,47 +125,47 @@ public final class ProjectHelper {
      * @return the project built from the interest group
      */
     private Project convertToProject(InterestGroup ig) {
-        return Project
+        return ProjectBuilder
                 .builder()
-                .setProjectId(ig.getProjectId())
-                .setGerritRepos(Collections.emptyList())
-                .setGithubRepos(Collections.emptyList())
-                .setGitlab(ig.getGitlab())
-                .setCommitters(ig
-                        .getParticipants()
+                .projectId(ig.projectId())
+                .gerritRepos(Collections.emptyList())
+                .gitlabRepos(Collections.emptyList())
+                .githubRepos(Collections.emptyList())
+                .gitlab(ig.gitlab())
+                .github(ProjectGithubProjectBuilder.builder().org("").ignoredRepos(Collections.emptyList()).build())
+                .committers(ig
+                        .participants()
                         .stream()
-                        .map(p -> ProjectParticipant
+                        .map(p -> ProjectProjectParticipantBuilder
                                 .builder()
-                                .setFullName(p.getFullName())
-                                .setUrl(p.getUrl())
-                                .setUsername(p.getUsername())
+                                .fullName(p.fullName())
+                                .url(p.url())
+                                .username(p.username())
                                 .build())
                         .toList())
-                .setProjectLeads(ig
-                        .getLeads()
+                .projectLeads(ig
+                        .leads()
                         .stream()
-                        .map(p -> ProjectParticipant
+                        .map(p -> ProjectProjectParticipantBuilder
                                 .builder()
-                                .setFullName(p.getFullName())
-                                .setUrl(p.getUrl())
-                                .setUsername(p.getUsername())
+                                .fullName(p.fullName())
+                                .url(p.url())
+                                .username(p.username())
                                 .build())
                         .toList())
-                .setContributors(Collections.emptyList())
-                .setShortProjectId(ig.getShortProjectId())
-                .setSummary("")
-                .setWebsiteUrl("")
-                .setWebsiteRepo(Collections.emptyList())
-                .setGitlab(ig.getGitlab())
-                .setGithub(GithubProject.builder().setOrg("").setIgnoredRepos(Collections.emptyList()).build())
-                .setIndustryCollaborations(Collections.emptyList())
-                .setReleases(Collections.emptyList())
-                .setTopLevelProject("")
-                .setUrl("")
-                .setLogo(ig.getLogo())
-                .setTags(Collections.emptyList())
-                .setName(ig.getTitle())
-                .setSpecProjectWorkingGroup(Collections.emptyMap())
+                .contributors(Collections.emptyList())
+                .shortProjectId(ig.shortProjectId())
+                .summary("")
+                .websiteUrl("")
+                .websiteRepo(Collections.emptyList())
+                .industryCollaborations(Collections.emptyList())
+                .releases(Collections.emptyList())
+                .topLevelProject("")
+                .url("")
+                .logo(ig.logo())
+                .tags(Collections.emptyList())
+                .name(ig.title())
+                .specProjectWorkingGroup(Collections.emptyMap())
                 .build();
     }
 
@@ -178,9 +179,9 @@ public final class ProjectHelper {
      * @return true if the project is a match via Gitlab repos or project namespace, false otherwise
      */
     private boolean doesProjectMatchGitlabRepos(Project p, String repoUrl, String projectNamespace) {
-        return p.getGitlabRepos().stream().anyMatch(re -> re.getUrl() != null && re.getUrl().endsWith(repoUrl))
-                || (projectNamespace.startsWith(p.getGitlab().getProjectGroup() + "/")
-                        && p.getGitlab().getIgnoredSubGroups().stream().noneMatch(sg -> projectNamespace.startsWith(sg + "/")));
+        return p.gitlabRepos().stream().anyMatch(re -> re.url() != null && re.url().endsWith(repoUrl))
+                || (projectNamespace.startsWith(p.gitlab().projectGroup() + "/")
+                        && p.gitlab().ignoredSubGroups().stream().noneMatch(sg -> projectNamespace.startsWith(sg + "/")));
     }
 
     /**
@@ -193,8 +194,8 @@ public final class ProjectHelper {
      * @return true if the project is a match via Github repos or organization, false otherwise
      */
     private boolean doesProjectMatchGithubRepos(Project p, String repoUrl, String projectNamespace) {
-        return p.getGithubRepos().stream().anyMatch(re -> re.getUrl() != null && re.getUrl().endsWith(repoUrl))
-                || (StringUtils.isNotBlank(p.getGithub().getOrg()) && projectNamespace.startsWith(p.getGithub().getOrg())
-                        && p.getGithub().getIgnoredRepos().stream().noneMatch(repoUrl::endsWith));
+        return p.githubRepos().stream().anyMatch(re -> re.url() != null && re.url().endsWith(repoUrl))
+                || (StringUtils.isNotBlank(p.github().org()) && projectNamespace.startsWith(p.github().org())
+                        && p.github().ignoredRepos().stream().noneMatch(repoUrl::endsWith));
     }
 }
diff --git a/src/main/java/org/eclipsefoundation/git/eca/resource/ValidationResource.java b/src/main/java/org/eclipsefoundation/git/eca/resource/ValidationResource.java
index 8695bcf4ac15fa5abf24bc4088b28b67ae5bb857..c745dfcddbe958086ee7e34d821ba50efad05054 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/resource/ValidationResource.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/resource/ValidationResource.java
@@ -117,7 +117,7 @@ public class ValidationResource extends CommonResource {
             if (user.isEmpty()) {
                 throw new NotFoundException(String.format("No user found with username '%s'", TransformationHelper.formatLog(query)));
             }
-            if (!user.get().getEca().getSigned()) {
+            if (!user.get().eca().signed()) {
                 return Response.status(Status.FORBIDDEN).build();
             }
         } else {
@@ -140,7 +140,7 @@ public class ValidationResource extends CommonResource {
         }
 
         // check that user has a project relation as a way of checking user trust
-        boolean isKnownCommitterOrPL = loggedInUser != null && loggedInUser.getIsCommitter();
+        boolean isKnownCommitterOrPL = loggedInUser != null && loggedInUser.isCommitter();
         if (!isKnownCommitterOrPL) {
             throw new FinalForbiddenException("User must be logged in and have committer level access to search by email");
         }
@@ -150,7 +150,7 @@ public class ValidationResource extends CommonResource {
             throw new NotFoundException(String.format("No user found with mail '%s'", TransformationHelper.formatLog(email)));
         }
         // if the user doesn't have a signed Eca, return an empty 403
-        if (!user.getEca().getSigned()) {
+        if (!user.eca().signed()) {
             throw new FinalForbiddenException("");
         }
     }
diff --git a/src/main/java/org/eclipsefoundation/git/eca/service/impl/CachedUserService.java b/src/main/java/org/eclipsefoundation/git/eca/service/impl/CachedUserService.java
index cfb9bfd7b18b3b4e12528a1ef5da77666016eadf..7bc12e92ed3ce54836764f89a22a603f83c96de9 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/service/impl/CachedUserService.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/service/impl/CachedUserService.java
@@ -77,7 +77,7 @@ public class CachedUserService implements UserService {
             return null;
         }
         CacheWrapper<EfUser> result = cache.get(mail, new MultivaluedHashMap<>(), EfUser.class, () -> retrieveUser(mail));
-        Optional<EfUser> user = result.getData();
+        Optional<EfUser> user = result.data();
         if (user.isPresent()) {
             LOGGER.debug("Found user with email {}", mail);
             return user.get();
@@ -128,8 +128,8 @@ public class CachedUserService implements UserService {
         }
         // check if any of the projects match any of the bots
         return filteredProjects.stream().anyMatch(p -> botObjs.stream().anyMatch(bot -> {
-            LOGGER.debug("Checking project {} for matching bots", p.getProjectId());
-            return p.getProjectId().equalsIgnoreCase(bot.get("projectId").asText())
+            LOGGER.debug("Checking project {} for matching bots", p.projectId());
+            return p.projectId().equalsIgnoreCase(bot.get("projectId").asText())
                     && checkFieldsForMatchingValue(bot, checkedValue, checkedField);
         }));
 
@@ -251,7 +251,7 @@ public class CachedUserService implements UserService {
     private List<JsonNode> getBots() {
         return cache
                 .get("allBots", new MultivaluedHashMap<>(), JsonNode.class, () -> bots.getBots())
-                .getData()
+                .data()
                 .orElse(Collections.emptyList());
     }
 
diff --git a/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultGithubApplicationService.java b/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultGithubApplicationService.java
index 02bbc0f38d58c4933d907eba327c2fcb9450e926..b0c8c69c2d3dadb7694cf2c8b9a66c5046f04baf 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultGithubApplicationService.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultGithubApplicationService.java
@@ -125,7 +125,7 @@ public class DefaultGithubApplicationService implements GithubApplicationService
         return cache
                 .get(fullRepoName, params, PullRequest.class,
                         () -> gh.getPullRequest(jwt.getGhBearerString(installationId), apiVersion, org, repoName, pullRequest))
-                .getData();
+                .data();
     }
 
     private List<GithubApplicationInstallation> getAllInstallRepos() {
diff --git a/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultSystemHookService.java b/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultSystemHookService.java
index eb24c5dba511ca143f2bde96fb29fd685030f929..2eb2547d9951e8a4e0451e1febc126c0547684b2 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultSystemHookService.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultSystemHookService.java
@@ -120,8 +120,8 @@ public class DefaultSystemHookService implements SystemHookService {
                     .get(Integer.toString(hook.getProjectId()), new MultivaluedHashMap<>(), GitlabProjectResponse.class,
                             () -> api.getProjectInfo(apiToken, hook.getProjectId()));
 
-            if (response.getData().isPresent()) {
-                PrivateProjectEvent dto = mapToDto(hook, response.getData().get());
+            if (response.data().isPresent()) {
+                PrivateProjectEvent dto = mapToDto(hook, response.data().get());
                 dao.add(new RDBMSQuery<>(wrapper, filters.get(PrivateProjectEvent.class)), Arrays.asList(dto));
             } else {
                 LOGGER.error("No info for project: [id: {}, path: {}]", hook.getProjectId(), hook.getPathWithNamespace());
@@ -231,7 +231,7 @@ public class DefaultSystemHookService implements SystemHookService {
         Optional<GitlabUserResponse> response = cache
                 .get(Integer.toString(userId), new MultivaluedHashMap<>(), GitlabUserResponse.class,
                         () -> api.getUserInfo(apiToken, userId))
-                .getData();
+                .data();
         return response.isPresent() ? response.get().getUsername() : null;
     }
 }
diff --git a/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultValidationService.java b/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultValidationService.java
index fdc3abbb30a913c13d2ae9a65907d68c65a43d66..781af73f9511bb24bec665af91b5de40964d4905 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultValidationService.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/service/impl/DefaultValidationService.java
@@ -21,8 +21,9 @@ import java.util.Optional;
 import org.apache.commons.lang3.StringUtils;
 import org.eclipse.microprofile.context.ManagedExecutor;
 import org.eclipsefoundation.efservices.api.models.EfUser;
-import org.eclipsefoundation.efservices.api.models.EfUser.Country;
-import org.eclipsefoundation.efservices.api.models.EfUser.Eca;
+import org.eclipsefoundation.efservices.api.models.EfUserBuilder;
+import org.eclipsefoundation.efservices.api.models.EfUserCountryBuilder;
+import org.eclipsefoundation.efservices.api.models.EfUserEcaBuilder;
 import org.eclipsefoundation.efservices.api.models.Project;
 import org.eclipsefoundation.git.eca.config.ECAParallelProcessingConfig;
 import org.eclipsefoundation.git.eca.config.MailValidationConfig;
@@ -98,7 +99,7 @@ public class DefaultValidationService implements ValidationService {
 
         // get previous validation status messages
         List<CommitValidationStatus> statuses = statusService
-                .getRequestCommitValidationStatus(wrapper, req, filteredProjects.isEmpty() ? null : filteredProjects.get(0).getProjectId());
+                .getRequestCommitValidationStatus(wrapper, req, filteredProjects.isEmpty() ? null : filteredProjects.get(0).projectId());
         List<ValidationResponsePart> parts;
         if (parallelProcessingConfig.enabled()) {
             LOGGER.trace("Using parallel for commit processing");
@@ -287,28 +288,28 @@ public class DefaultValidationService implements ValidationService {
         if (isCommitter) {
             part
                     .commit()
-                    .addMessage(String.format("Eclipse user '%s'(%s) is a committer on the project.", eclipseUser.getName(), userType));
+                    .addMessage(String.format("Eclipse user '%s'(%s) is a committer on the project.", eclipseUser.name(), userType));
         } else {
             part
                     .commit()
-                    .addMessage(String.format("Eclipse user '%s'(%s) is not a committer on the project.", eclipseUser.getName(), userType));
+                    .addMessage(String.format("Eclipse user '%s'(%s) is not a committer on the project.", eclipseUser.name(), userType));
             // check if the author is signed off if not a committer
-            if (eclipseUser.getEca().getSigned()) {
+            if (eclipseUser.eca().signed()) {
                 part
                         .commit()
                         .addMessage(String
                                 .format("Eclipse user '%s'(%s) has a current Eclipse Contributor Agreement (ECA) on file.",
-                                        eclipseUser.getName(), userType));
+                                        eclipseUser.name(), userType));
             } else {
                 part
                         .commit()
                         .addMessage(String
                                 .format("Eclipse user '%s'(%s) does not have a current Eclipse Contributor Agreement (ECA) on file.\n"
-                                        + "If there are multiple commits, please ensure that each author has a ECA.", eclipseUser.getName(),
+                                        + "If there are multiple commits, please ensure that each author has a ECA.", eclipseUser.name(),
                                         userType));
                 part
                         .addError(String
-                                .format("An Eclipse Contributor Agreement is required for Eclipse user '%s'(%s).", eclipseUser.getName(),
+                                .format("An Eclipse Contributor Agreement is required for Eclipse user '%s'(%s).", eclipseUser.name(),
                                         userType),
                                 errorCode);
             }
@@ -331,12 +332,12 @@ public class DefaultValidationService implements ValidationService {
     private boolean isCommitter(ValidationResponsePart part, EfUser user, List<Project> filteredProjects) {
         // iterate over filtered projects
         for (Project p : filteredProjects) {
-            LOGGER.debug("Checking project '{}' for user '{}'", p.getName(), user.getName());
+            LOGGER.debug("Checking project '{}' for user '{}'", p.name(), user.name());
             // check if any of the committers usernames match the current user
-            if (p.getCommitters().stream().anyMatch(u -> u.getUsername().equals(user.getName()))) {
+            if (p.committers().stream().anyMatch(u -> u.username().equals(user.name()))) {
                 // check if the current project is a committer project, and if the user can
                 // commit to specs
-                if (p.getSpecWorkingGroup().isPresent() && !user.getEca().getCanContributeSpecProject()) {
+                if (p.getSpecWorkingGroup().isPresent() && !user.eca().canContributeSpecProject()) {
                     // set error + update response status
                     part
                             .addError(String
@@ -345,14 +346,14 @@ public class DefaultValidationService implements ValidationService {
                                     APIStatusCode.ERROR_SPEC_PROJECT);
                     return false;
                 } else {
-                    LOGGER.debug("User '{}' was found to be a committer on current project repo '{}'", user.getMail(), p.getName());
+                    LOGGER.debug("User '{}' was found to be a committer on current project repo '{}'", user.mail(), p.name());
                     return true;
                 }
             }
         }
         // check if user is a bot, either through early detection or through on-demand check
-        if ((user.getIsBot() != null && Boolean.TRUE.equals(user.getIsBot())) || users.userIsABot(user.getMail(), filteredProjects)) {
-            LOGGER.debug("User '{} <{}>' was found to be a bot", user.getName(), user.getMail());
+        if ((user.isBot() != null && Boolean.TRUE.equals(user.isBot())) || users.userIsABot(user.mail(), filteredProjects)) {
+            LOGGER.debug("User '{} <{}>' was found to be a bot", user.name(), user.mail());
             return true;
         }
         return false;
@@ -456,23 +457,23 @@ public class DefaultValidationService implements ValidationService {
     }
 
     private EfUser createBotStub(GitUser user) {
-        return EfUser
+        return EfUserBuilder
                 .builder()
-                .setUid("0")
-                .setPicture("")
-                .setFirstName("")
-                .setLastName("")
-                .setFullName("")
-                .setPublisherAgreements(Collections.emptyMap())
-                .setTwitterHandle("")
-                .setJobTitle("")
-                .setWebsite("")
-                .setCountry(Country.builder().build())
-                .setInterests(Collections.emptyList())
-                .setName(user.getName())
-                .setMail(user.getMail())
-                .setEca(Eca.builder().build())
-                .setIsBot(true)
+                .uid("0")
+                .picture("")
+                .firstName("")
+                .lastName("")
+                .fullName("")
+                .publisherAgreements(Collections.emptyMap())
+                .twitterHandle("")
+                .jobTitle("")
+                .website("")
+                .country(EfUserCountryBuilder.builder().build())
+                .interests(Collections.emptyList())
+                .name(user.getName())
+                .mail(user.getMail())
+                .eca(EfUserEcaBuilder.builder().build())
+                .isBot(true)
                 .build();
     }
 }
diff --git a/src/main/java/org/eclipsefoundation/git/eca/tasks/ScheduledPrivateProjectScanTask.java b/src/main/java/org/eclipsefoundation/git/eca/tasks/ScheduledPrivateProjectScanTask.java
index 29ce5b87f18a8c13d5c239433bb076bd68f438ba..fdafbc7ddecaefd4eb31ced069f2b7ee6bb7a42f 100644
--- a/src/main/java/org/eclipsefoundation/git/eca/tasks/ScheduledPrivateProjectScanTask.java
+++ b/src/main/java/org/eclipsefoundation/git/eca/tasks/ScheduledPrivateProjectScanTask.java
@@ -71,7 +71,7 @@ public class ScheduledPrivateProjectScanTask {
             Optional<List<GitlabProjectResponse>> response = cache
                     .get("all", new MultivaluedHashMap<>(), GitlabProjectResponse.class,
                             () -> middleware.getAll(p -> api.getPrivateProjects(p, apiToken, "private", PRIVATE_PROJECT_PAGE_SIZE)))
-                    .getData();
+                    .data();
 
             response.ifPresent(this::processGitlabResponseList);
         }
@@ -199,7 +199,7 @@ public class ScheduledPrivateProjectScanTask {
         Optional<GitlabUserResponse> response = cache
                 .get(Integer.toString(userId), new MultivaluedHashMap<>(), GitlabUserResponse.class,
                         () -> api.getUserInfo(apiToken, userId))
-                .getData();
+                .data();
         return response.isPresent() ? response.get().getUsername() : null;
     }
 }
diff --git a/src/test/java/org/eclipsefoundation/git/eca/helper/ProjectHelperTest.java b/src/test/java/org/eclipsefoundation/git/eca/helper/ProjectHelperTest.java
index 41e5e9304432aeeafe8bf490ebb47df3a0a37941..afc8e3aa830f24e9e92050655bc36a670de444f8 100644
--- a/src/test/java/org/eclipsefoundation/git/eca/helper/ProjectHelperTest.java
+++ b/src/test/java/org/eclipsefoundation/git/eca/helper/ProjectHelperTest.java
@@ -25,7 +25,7 @@ class ProjectHelperTest {
         List<Project> results = helper
                 .retrieveProjectsForRepoURL("http://www.gitlab.eclipse.org/eclipse/dash-second/sample-repo", ProviderType.GITLAB);
         Assertions.assertEquals(1, results.size());
-        Assertions.assertEquals("sample.proto", results.get(0).getProjectId());
+        Assertions.assertEquals("sample.proto", results.get(0).projectId());
     }
 
     @Test
@@ -33,7 +33,7 @@ class ProjectHelperTest {
         List<Project> results = helper
                 .retrieveProjectsForRepoURL("http://www.gitlab.eclipse.org/eclipsefdn/sample/repo", ProviderType.GITLAB);
         Assertions.assertEquals(1, results.size());
-        Assertions.assertEquals("spec.proj", results.get(0).getProjectId());
+        Assertions.assertEquals("spec.proj", results.get(0).projectId());
     }
 
     @Test
@@ -56,14 +56,14 @@ class ProjectHelperTest {
     void retrieveProjectsForRepoURL_success_githubOrg() {
         List<Project> results = helper.retrieveProjectsForRepoURL("http://www.github.com/eclipsefdn-tck/dash-second", ProviderType.GITHUB);
         Assertions.assertEquals(1, results.size());
-        Assertions.assertEquals("spec.proj", results.get(0).getProjectId());
+        Assertions.assertEquals("spec.proj", results.get(0).projectId());
     }
 
     @Test
     void retrieveProjectsForRepoURL_success_githubRepo() {
         List<Project> results = helper.retrieveProjectsForRepoURL("http://www.github.com/eclipsefdn/tck-proto", ProviderType.GITHUB);
         Assertions.assertEquals(1, results.size());
-        Assertions.assertEquals("spec.proj", results.get(0).getProjectId());
+        Assertions.assertEquals("spec.proj", results.get(0).projectId());
     }
 
     @Test
@@ -84,6 +84,6 @@ class ProjectHelperTest {
     void retrieveProjectsForRepoURL_success_websiteRepo() {
         List<Project> results = helper.retrieveProjectsForRepoURL(MockProjectsAPI.WEBSITE_REPO_URL, ProviderType.GITHUB);
         Assertions.assertEquals(1, results.size());
-        Assertions.assertEquals("sample.proj", results.get(0).getProjectId());
+        Assertions.assertEquals("sample.proj", results.get(0).projectId());
     }
 }
diff --git a/src/test/java/org/eclipsefoundation/git/eca/service/impl/CachedUserServiceTest.java b/src/test/java/org/eclipsefoundation/git/eca/service/impl/CachedUserServiceTest.java
index d52a5f18f3bb2f93e2d1d9cce93277e61cd62eaa..c62093b660897e9adbeb32eee0a485b82e11e7cb 100644
--- a/src/test/java/org/eclipsefoundation/git/eca/service/impl/CachedUserServiceTest.java
+++ b/src/test/java/org/eclipsefoundation/git/eca/service/impl/CachedUserServiceTest.java
@@ -46,7 +46,7 @@ class CachedUserServiceTest {
         EfUser u = users.getUser("grunt@important.co");
         // assert that this is the user we expect and that it exists
         Assertions.assertNotNull(u);
-        Assertions.assertEquals("grunter", u.getName());
+        Assertions.assertEquals("grunter", u.name());
     }
 
     @Test
@@ -54,7 +54,7 @@ class CachedUserServiceTest {
         EfUser u = users.getUser("123456789+grunter2@users.noreply.github.com");
         // assert that this is the user we expect and that it exists
         Assertions.assertNotNull(u);
-        Assertions.assertEquals("grunter", u.getName());
+        Assertions.assertEquals("grunter", u.name());
     }
 
     @Test
@@ -78,7 +78,7 @@ class CachedUserServiceTest {
         EfUser u = users.getUserByGithubUsername("grunter2");
         // assert that this is the user we expect and that it exists
         Assertions.assertNotNull(u);
-        Assertions.assertEquals("grunt@important.co", u.getMail());
+        Assertions.assertEquals("grunt@important.co", u.mail());
     }
 
     @Test
@@ -136,7 +136,7 @@ class CachedUserServiceTest {
      * @return the sample.proj project in a list for use in tests.
      */
     private List<Project> getTestProject() {
-        Optional<Project> proj = projects.getProjects().stream().filter(p -> p.getProjectId().equals("sample.proj")).findFirst();
+        Optional<Project> proj = projects.getProjects().stream().filter(p -> p.projectId().equals("sample.proj")).findFirst();
         if (proj.isEmpty()) {
             Assertions.fail("Could not find one of the needed test projects for test, bad state.");
         }
diff --git a/src/test/java/org/eclipsefoundation/git/eca/test/api/MockAccountsAPI.java b/src/test/java/org/eclipsefoundation/git/eca/test/api/MockAccountsAPI.java
index b0a0ec97005a0edcb1c28ae0162b918fb9cf0ffc..42011d4ed559c8313dc920667a99791c6943bfe6 100644
--- a/src/test/java/org/eclipsefoundation/git/eca/test/api/MockAccountsAPI.java
+++ b/src/test/java/org/eclipsefoundation/git/eca/test/api/MockAccountsAPI.java
@@ -20,8 +20,9 @@ import java.util.function.Predicate;
 import org.eclipse.microprofile.rest.client.inject.RestClient;
 import org.eclipsefoundation.efservices.api.ProfileAPI;
 import org.eclipsefoundation.efservices.api.models.EfUser;
-import org.eclipsefoundation.efservices.api.models.EfUser.Country;
-import org.eclipsefoundation.efservices.api.models.EfUser.Eca;
+import org.eclipsefoundation.efservices.api.models.EfUserBuilder;
+import org.eclipsefoundation.efservices.api.models.EfUserCountryBuilder;
+import org.eclipsefoundation.efservices.api.models.EfUserEcaBuilder;
 import org.eclipsefoundation.efservices.api.models.UserSearchParams;
 
 import io.quarkus.test.Mock;
@@ -46,146 +47,146 @@ public class MockAccountsAPI implements ProfileAPI {
         this.users = new HashMap<>();
         users
                 .put("newbie@important.co",
-                        EfUser
+                        EfUserBuilder
                                 .builder()
-                                .setIsCommitter(false)
-                                .setPicture("")
-                                .setFirstName("")
-                                .setLastName("")
-                                .setFullName("")
-                                .setPublisherAgreements(Collections.emptyMap())
-                                .setTwitterHandle("")
-                                .setJobTitle("")
-                                .setWebsite("")
-                                .setCountry(Country.builder().build())
-                                .setInterests(Collections.emptyList())
-                                .setUid(Integer.toString(id++))
-                                .setMail("newbie@important.co")
-                                .setName("newbieAnon")
-                                .setEca(Eca.builder().build())
+                                .isCommitter(false)
+                                .picture("")
+                                .firstName("")
+                                .lastName("")
+                                .fullName("")
+                                .publisherAgreements(Collections.emptyMap())
+                                .twitterHandle("")
+                                .jobTitle("")
+                                .website("")
+                                .country(EfUserCountryBuilder.builder().build())
+                                .interests(Collections.emptyList())
+                                .uid(Integer.toString(id++))
+                                .mail("newbie@important.co")
+                                .name("newbieAnon")
+                                .eca(EfUserEcaBuilder.builder().build())
                                 .build());
         users
                 .put("slom@eclipse-foundation.org",
-                        EfUser
+                        EfUserBuilder
                                 .builder()
-                                .setIsCommitter(false)
-                                .setPicture("")
-                                .setFirstName("")
-                                .setLastName("")
-                                .setFullName("")
-                                .setPublisherAgreements(Collections.emptyMap())
-                                .setTwitterHandle("")
-                                .setJobTitle("")
-                                .setWebsite("")
-                                .setCountry(Country.builder().build())
-                                .setInterests(Collections.emptyList())
-                                .setUid(Integer.toString(id++))
-                                .setMail("slom@eclipse-foundation.org")
-                                .setName("barshall_blathers")
-                                .setEca(Eca.builder().setCanContributeSpecProject(true).setSigned(true).build())
+                                .isCommitter(false)
+                                .picture("")
+                                .firstName("")
+                                .lastName("")
+                                .fullName("")
+                                .publisherAgreements(Collections.emptyMap())
+                                .twitterHandle("")
+                                .jobTitle("")
+                                .website("")
+                                .country(EfUserCountryBuilder.builder().build())
+                                .interests(Collections.emptyList())
+                                .uid(Integer.toString(id++))
+                                .mail("slom@eclipse-foundation.org")
+                                .name("barshall_blathers")
+                                .eca(EfUserEcaBuilder.builder().canContributeSpecProject(true).signed(true).build())
                                 .build());
         users
                 .put("tester@eclipse-foundation.org",
-                        EfUser
+                        EfUserBuilder
                                 .builder()
-                                .setIsCommitter(false)
-                                .setPicture("")
-                                .setFirstName("")
-                                .setLastName("")
-                                .setFullName("")
-                                .setPublisherAgreements(Collections.emptyMap())
-                                .setTwitterHandle("")
-                                .setJobTitle("")
-                                .setWebsite("")
-                                .setCountry(Country.builder().build())
-                                .setInterests(Collections.emptyList())
-                                .setUid(Integer.toString(id++))
-                                .setMail("tester@eclipse-foundation.org")
-                                .setName("mctesterson")
-                                .setEca(Eca.builder().setCanContributeSpecProject(false).setSigned(true).build())
+                                .isCommitter(false)
+                                .picture("")
+                                .firstName("")
+                                .lastName("")
+                                .fullName("")
+                                .publisherAgreements(Collections.emptyMap())
+                                .twitterHandle("")
+                                .jobTitle("")
+                                .website("")
+                                .country(EfUserCountryBuilder.builder().build())
+                                .interests(Collections.emptyList())
+                                .uid(Integer.toString(id++))
+                                .mail("tester@eclipse-foundation.org")
+                                .name("mctesterson")
+                                .eca(EfUserEcaBuilder.builder().canContributeSpecProject(false).signed(true).build())
                                 .build());
         users
                 .put("code.wiz@important.co",
-                        EfUser
+                        EfUserBuilder
                                 .builder()
-                                .setIsCommitter(true)
-                                .setPicture("")
-                                .setFirstName("")
-                                .setLastName("")
-                                .setFullName("")
-                                .setPublisherAgreements(Collections.emptyMap())
-                                .setTwitterHandle("")
-                                .setJobTitle("")
-                                .setWebsite("")
-                                .setCountry(Country.builder().build())
-                                .setInterests(Collections.emptyList())
-                                .setUid(Integer.toString(id++))
-                                .setMail("code.wiz@important.co")
-                                .setName("da_wizz")
-                                .setEca(Eca.builder().setCanContributeSpecProject(true).setSigned(true).build())
-                                .setGithubHandle("wiz_in_da_hub")
+                                .isCommitter(true)
+                                .picture("")
+                                .firstName("")
+                                .lastName("")
+                                .fullName("")
+                                .publisherAgreements(Collections.emptyMap())
+                                .twitterHandle("")
+                                .jobTitle("")
+                                .website("")
+                                .country(EfUserCountryBuilder.builder().build())
+                                .interests(Collections.emptyList())
+                                .uid(Integer.toString(id++))
+                                .mail("code.wiz@important.co")
+                                .name("da_wizz")
+                                .eca(EfUserEcaBuilder.builder().canContributeSpecProject(true).signed(true).build())
+                                .githubHandle("wiz_in_da_hub")
                                 .build());
         users
                 .put("grunt@important.co",
-                        EfUser
+                        EfUserBuilder
                                 .builder()
-                                .setIsCommitter(true)
-                                .setPicture("")
-                                .setFirstName("")
-                                .setLastName("")
-                                .setFullName("")
-                                .setPublisherAgreements(Collections.emptyMap())
-                                .setTwitterHandle("")
-                                .setJobTitle("")
-                                .setWebsite("")
-                                .setCountry(Country.builder().build())
-                                .setInterests(Collections.emptyList())
-                                .setUid(Integer.toString(id++))
-                                .setMail("grunt@important.co")
-                                .setName("grunter")
-                                .setEca(Eca.builder().setCanContributeSpecProject(false).setSigned(true).build())
-                                .setGithubHandle("grunter2")
+                                .isCommitter(true)
+                                .picture("")
+                                .firstName("")
+                                .lastName("")
+                                .fullName("")
+                                .publisherAgreements(Collections.emptyMap())
+                                .twitterHandle("")
+                                .jobTitle("")
+                                .website("")
+                                .country(EfUserCountryBuilder.builder().build())
+                                .interests(Collections.emptyList())
+                                .uid(Integer.toString(id++))
+                                .mail("grunt@important.co")
+                                .name("grunter")
+                                .eca(EfUserEcaBuilder.builder().canContributeSpecProject(false).signed(true).build())
+                                .githubHandle("grunter2")
                                 .build());
         users
                 .put("paper.pusher@important.co",
-                        EfUser
+                        EfUserBuilder
                                 .builder()
-                                .setIsCommitter(false)
-                                .setPicture("")
-                                .setFirstName("")
-                                .setLastName("")
-                                .setFullName("")
-                                .setPublisherAgreements(Collections.emptyMap())
-                                .setTwitterHandle("")
-                                .setJobTitle("")
-                                .setWebsite("")
-                                .setCountry(Country.builder().build())
-                                .setInterests(Collections.emptyList())
-                                .setUid(Integer.toString(id++))
-                                .setMail("paper.pusher@important.co")
-                                .setName("sumAnalyst")
-                                .setEca(Eca.builder().setCanContributeSpecProject(false).setSigned(true).build())
+                                .isCommitter(false)
+                                .picture("")
+                                .firstName("")
+                                .lastName("")
+                                .fullName("")
+                                .publisherAgreements(Collections.emptyMap())
+                                .twitterHandle("")
+                                .jobTitle("")
+                                .website("")
+                                .country(EfUserCountryBuilder.builder().build())
+                                .interests(Collections.emptyList())
+                                .uid(Integer.toString(id++))
+                                .mail("paper.pusher@important.co")
+                                .name("sumAnalyst")
+                                .eca(EfUserEcaBuilder.builder().canContributeSpecProject(false).signed(true).build())
                                 .build());
         users
                 .put("opearson@important.co",
-                        EfUser
+                        EfUserBuilder
                                 .builder()
-                                .setIsCommitter(true)
-                                .setPicture("")
-                                .setFirstName("")
-                                .setLastName("")
-                                .setFullName("")
-                                .setPublisherAgreements(Collections.emptyMap())
-                                .setTwitterHandle("")
-                                .setJobTitle("")
-                                .setWebsite("")
-                                .setCountry(Country.builder().build())
-                                .setInterests(Collections.emptyList())
-                                .setUid(Integer.toString(id++))
-                                .setMail("opearson@important.co")
-                                .setName("opearson")
-                                .setEca(Eca.builder().setCanContributeSpecProject(false).setSigned(true).build())
-                                .setGithubHandle("opearson")
+                                .isCommitter(true)
+                                .picture("")
+                                .firstName("")
+                                .lastName("")
+                                .fullName("")
+                                .publisherAgreements(Collections.emptyMap())
+                                .twitterHandle("")
+                                .jobTitle("")
+                                .website("")
+                                .country(EfUserCountryBuilder.builder().build())
+                                .interests(Collections.emptyList())
+                                .uid(Integer.toString(id++))
+                                .mail("opearson@important.co")
+                                .name("opearson")
+                                .eca(EfUserEcaBuilder.builder().canContributeSpecProject(false).signed(true).build())
+                                .githubHandle("opearson")
                                 .build());
     }
 
@@ -199,7 +200,7 @@ public class MockAccountsAPI implements ProfileAPI {
         return users
                 .values()
                 .stream()
-                .filter(u -> u.getGithubHandle() != null && u.getGithubHandle().equals(ghHandle))
+                .filter(u -> u.githubHandle() != null && u.githubHandle().equals(ghHandle))
                 .findFirst()
                 .orElseGet(() -> null);
     }
@@ -210,12 +211,12 @@ public class MockAccountsAPI implements ProfileAPI {
                 .values()
                 .stream()
                 .filter(usernamePredicate(params.name))
-                .filter(u -> params.mail == null || u.getMail().equals(params.mail))
-                .filter(u -> params.uid == null || u.getUid().equals(params.uid))
+                .filter(u -> params.mail == null || u.mail().equals(params.mail))
+                .filter(u -> params.uid == null || u.uid().equals(params.uid))
                 .toList();
     }
 
     private Predicate<EfUser> usernamePredicate(String target) {
-        return u -> target == null || u.getName().equals(target);
+        return u -> target == null || u.name().equals(target);
     }
 }
diff --git a/src/test/java/org/eclipsefoundation/git/eca/test/api/MockProjectsAPI.java b/src/test/java/org/eclipsefoundation/git/eca/test/api/MockProjectsAPI.java
index c2e73d2dc041b43ffe483173e4aea617a9a551b2..bf2384c812540b9e8c2f43e32d342d35748c5c75 100644
--- a/src/test/java/org/eclipsefoundation/git/eca/test/api/MockProjectsAPI.java
+++ b/src/test/java/org/eclipsefoundation/git/eca/test/api/MockProjectsAPI.java
@@ -20,17 +20,21 @@ import java.util.Map;
 import org.eclipse.microprofile.rest.client.inject.RestClient;
 import org.eclipsefoundation.core.service.APIMiddleware.BaseAPIParameters;
 import org.eclipsefoundation.efservices.api.ProjectsAPI;
-import org.eclipsefoundation.efservices.api.models.GitlabProject;
+import org.eclipsefoundation.efservices.api.models.GitlabProjectBuilder;
 import org.eclipsefoundation.efservices.api.models.InterestGroup;
-import org.eclipsefoundation.efservices.api.models.InterestGroup.Descriptor;
-import org.eclipsefoundation.efservices.api.models.InterestGroup.InterestGroupParticipant;
-import org.eclipsefoundation.efservices.api.models.InterestGroup.Organization;
-import org.eclipsefoundation.efservices.api.models.InterestGroup.Resource;
+import org.eclipsefoundation.efservices.api.models.InterestGroupBuilder;
+import org.eclipsefoundation.efservices.api.models.InterestGroupDescriptorBuilder;
+import org.eclipsefoundation.efservices.api.models.InterestGroupInterestGroupParticipantBuilder;
+import org.eclipsefoundation.efservices.api.models.InterestGroupOrganizationBuilder;
+import org.eclipsefoundation.efservices.api.models.InterestGroupResourceBuilder;
 import org.eclipsefoundation.efservices.api.models.Project;
-import org.eclipsefoundation.efservices.api.models.Project.GithubProject;
 import org.eclipsefoundation.efservices.api.models.Project.ProjectParticipant;
 import org.eclipsefoundation.efservices.api.models.Project.Repo;
-import org.eclipsefoundation.efservices.api.models.Project.WebsiteRepo;
+import org.eclipsefoundation.efservices.api.models.ProjectBuilder;
+import org.eclipsefoundation.efservices.api.models.ProjectGithubProjectBuilder;
+import org.eclipsefoundation.efservices.api.models.ProjectProjectParticipantBuilder;
+import org.eclipsefoundation.efservices.api.models.ProjectRepoBuilder;
+import org.eclipsefoundation.efservices.api.models.ProjectWebsiteRepoBuilder;
 import org.eclipsefoundation.testing.helpers.MockDataPaginationHandler;
 import org.jboss.resteasy.reactive.RestResponse;
 
@@ -52,150 +56,152 @@ public class MockProjectsAPI implements ProjectsAPI {
         this.projects = new ArrayList<>();
 
         // sample repos
-        Repo r1 = Repo.builder().setUrl("http://www.github.com/eclipsefdn/sample").build();
-        Repo r2 = Repo.builder().setUrl("http://www.github.com/eclipsefdn/test").build();
-        Repo r3 = Repo.builder().setUrl("http://www.github.com/eclipsefdn/prototype.git").build();
-        Repo r4 = Repo.builder().setUrl("http://www.github.com/eclipsefdn/tck-proto").build();
-        Repo r5 = Repo.builder().setUrl("/gitroot/sample/gerrit.project.git").build();
-        Repo r6 = Repo.builder().setUrl("/gitroot/sample/gerrit.other-project").build();
+        Repo r1 = ProjectRepoBuilder.builder().url("http://www.github.com/eclipsefdn/sample").build();
+        Repo r2 = ProjectRepoBuilder.builder().url("http://www.github.com/eclipsefdn/test").build();
+        Repo r3 = ProjectRepoBuilder.builder().url("http://www.github.com/eclipsefdn/prototype.git").build();
+        Repo r4 = ProjectRepoBuilder.builder().url("http://www.github.com/eclipsefdn/tck-proto").build();
+        Repo r5 = ProjectRepoBuilder.builder().url("/gitroot/sample/gerrit.project.git").build();
+        Repo r6 = ProjectRepoBuilder.builder().url("/gitroot/sample/gerrit.other-project").build();
 
         // sample users
-        ProjectParticipant u1 = ProjectParticipant.builder().setUrl("").setUsername("da_wizz").setFullName("da_wizz").build();
-        ProjectParticipant u2 = ProjectParticipant.builder().setUrl("").setUsername("grunter").setFullName("grunter").build();
+        ProjectParticipant u1 = ProjectProjectParticipantBuilder.builder().url("").username("da_wizz").fullName("da_wizz").build();
+        ProjectParticipant u2 = ProjectProjectParticipantBuilder.builder().url("").username("grunter").fullName("grunter").build();
 
         this.projects
-                .add(Project
+                .add(ProjectBuilder
                         .builder()
-                        .setName("Sample project")
-                        .setProjectId("sample.proj")
-                        .setSpecProjectWorkingGroup(Collections.emptyMap())
-                        .setGithubRepos(Arrays.asList(r1, r2))
-                        .setGerritRepos(Arrays.asList(r5))
-                        .setCommitters(Arrays.asList(u1, u2))
-                        .setProjectLeads(Collections.emptyList())
-                        .setGitlab(GitlabProject.builder().setIgnoredSubGroups(Collections.emptyList()).setProjectGroup("").build())
-                        .setShortProjectId("sample.proj")
-                        .setSummary("summary")
-                        .setUrl("project.url.com")
-                        .setWebsiteUrl("someproject.com")
-                        .setWebsiteRepo(Arrays
-                                .asList(WebsiteRepo.builder().setCheckoutDir("").setSourceBranch("").setUrl(WEBSITE_REPO_URL).build()))
-                        .setLogo("logoUrl.com")
-                        .setTags(Collections.emptyList())
-                        .setGithub(GithubProject.builder().setOrg("").setIgnoredRepos(Collections.emptyList()).build())
-                        .setContributors(Collections.emptyList())
-                        .setIndustryCollaborations(Collections.emptyList())
-                        .setReleases(Collections.emptyList())
-                        .setTopLevelProject("eclipse")
+                        .name("Sample project")
+                        .projectId("sample.proj")
+                        .specProjectWorkingGroup(Collections.emptyMap())
+                        .githubRepos(Arrays.asList(r1, r2))
+                        .gitlabRepos(Collections.emptyList())
+                        .gerritRepos(Arrays.asList(r5))
+                        .committers(Arrays.asList(u1, u2))
+                        .projectLeads(Collections.emptyList())
+                        .gitlab(GitlabProjectBuilder.builder().ignoredSubGroups(Collections.emptyList()).projectGroup("").build())
+                        .shortProjectId("sample.proj")
+                        .summary("summary")
+                        .url("project.url.com")
+                        .websiteUrl("someproject.com")
+                        .websiteRepo(Arrays
+                                .asList(ProjectWebsiteRepoBuilder.builder().checkoutDir("").sourceBranch("").url(WEBSITE_REPO_URL).build()))
+                        .logo("logoUrl.com")
+                        .tags(Collections.emptyList())
+                        .github(ProjectGithubProjectBuilder.builder().org("").ignoredRepos(Collections.emptyList()).build())
+                        .contributors(Collections.emptyList())
+                        .industryCollaborations(Collections.emptyList())
+                        .releases(Collections.emptyList())
+                        .topLevelProject("eclipse")
                         .build());
 
         this.projects
-                .add(Project
+                .add(ProjectBuilder
                         .builder()
-                        .setName("Prototype thing")
-                        .setProjectId("sample.proto")
-                        .setSpecProjectWorkingGroup(Collections.emptyMap())
-                        .setGithubRepos(Arrays.asList(r3))
-                        .setGerritRepos(Arrays.asList(r6))
-                        .setCommitters(Arrays.asList(u2))
-                        .setProjectLeads(Collections.emptyList())
-                        .setGitlab(GitlabProject
+                        .name("Prototype thing")
+                        .projectId("sample.proto")
+                        .specProjectWorkingGroup(Collections.emptyMap())
+                        .githubRepos(Arrays.asList(r3))
+                        .gitlabRepos(Collections.emptyList())
+                        .gerritRepos(Arrays.asList(r6))
+                        .committers(Arrays.asList(u2))
+                        .projectLeads(Collections.emptyList())
+                        .gitlab(GitlabProjectBuilder
                                 .builder()
-                                .setIgnoredSubGroups(Collections.emptyList())
-                                .setProjectGroup("eclipse/dash-second")
+                                .ignoredSubGroups(Collections.emptyList())
+                                .projectGroup("eclipse/dash-second")
                                 .build())
-                        .setShortProjectId("sample.proto")
-                        .setWebsiteUrl("someproject.com")
-                        .setSummary("summary")
-                        .setUrl("project.url.com")
-                        .setWebsiteRepo(Collections.emptyList())
-                        .setLogo("logoUrl.com")
-                        .setTags(Collections.emptyList())
-                        .setGithub(GithubProject.builder().setOrg("").setIgnoredRepos(Collections.emptyList()).build())
-                        .setContributors(Collections.emptyList())
-                        .setIndustryCollaborations(Collections.emptyList())
-                        .setReleases(Collections.emptyList())
-                        .setTopLevelProject("eclipse")
+                        .shortProjectId("sample.proto")
+                        .websiteUrl("someproject.com")
+                        .summary("summary")
+                        .url("project.url.com")
+                        .websiteRepo(Collections.emptyList())
+                        .logo("logoUrl.com")
+                        .tags(Collections.emptyList())
+                        .github(ProjectGithubProjectBuilder.builder().org("").ignoredRepos(Collections.emptyList()).build())
+                        .contributors(Collections.emptyList())
+                        .industryCollaborations(Collections.emptyList())
+                        .releases(Collections.emptyList())
+                        .topLevelProject("eclipse")
                         .build());
 
         this.projects
-                .add(Project
+                .add(ProjectBuilder
                         .builder()
-                        .setName("Spec project")
-                        .setProjectId("spec.proj")
-                        .setSpecProjectWorkingGroup(Map.of("id", "proj1", "name", "proj1"))
-                        .setGithubRepos(Arrays.asList(r4))
-                        .setGerritRepos(Collections.emptyList())
-                        .setGitlab(GitlabProject
+                        .name("Spec project")
+                        .projectId("spec.proj")
+                        .specProjectWorkingGroup(Map.of("id", "proj1", "name", "proj1"))
+                        .githubRepos(Arrays.asList(r4))
+                        .gerritRepos(Collections.emptyList())
+                        .gitlab(GitlabProjectBuilder
                                 .builder()
-                                .setIgnoredSubGroups(Arrays.asList("eclipse/dash/mirror"))
-                                .setProjectGroup("eclipse/dash")
+                                .ignoredSubGroups(Arrays.asList("eclipse/dash/mirror"))
+                                .projectGroup("eclipse/dash")
                                 .build())
-                        .setGitlabRepos(
-                                Arrays.asList(Repo.builder().setUrl("http://www.gitlab.eclipse.org/eclipsefdn/sample/repo").build()))
-                        .setCommitters(Arrays.asList(u1, u2))
-                        .setProjectLeads(Collections.emptyList())
-                        .setShortProjectId("spec.proj")
-                        .setSummary("summary")
-                        .setUrl("project.url.com")
-                        .setWebsiteUrl("someproject.com")
-                        .setWebsiteRepo(Collections.emptyList())
-                        .setLogo("logoUrl.com")
-                        .setTags(Collections.emptyList())
-                        .setGithub(GithubProject
+                        .gitlabRepos(
+                                Arrays.asList(ProjectRepoBuilder.builder().url("http://www.gitlab.eclipse.org/eclipsefdn/sample/repo").build()))
+                        .committers(Arrays.asList(u1, u2))
+                        .projectLeads(Collections.emptyList())
+                        .shortProjectId("spec.proj")
+                        .summary("summary")
+                        .url("project.url.com")
+                        .websiteUrl("someproject.com")
+                        .websiteRepo(Collections.emptyList())
+                        .logo("logoUrl.com")
+                        .tags(Collections.emptyList())
+                        .github(ProjectGithubProjectBuilder
                                 .builder()
-                                .setOrg("eclipsefdn-tck")
-                                .setIgnoredRepos(Arrays.asList("eclipsefdn-tck/tck-ignored"))
+                                .org("eclipsefdn-tck")
+                                .ignoredRepos(Arrays.asList("eclipsefdn-tck/tck-ignored"))
                                 .build())
-                        .setContributors(Collections.emptyList())
-                        .setIndustryCollaborations(Collections.emptyList())
-                        .setReleases(Collections.emptyList())
-                        .setTopLevelProject("eclipse")
+                        .contributors(Collections.emptyList())
+                        .industryCollaborations(Collections.emptyList())
+                        .releases(Collections.emptyList())
+                        .topLevelProject("eclipse")
                         .build());
         this.igs = Arrays
-                .asList(InterestGroup
+                .asList(InterestGroupBuilder
                         .builder()
-                        .setProjectId("foundation-internal.ig.mittens")
-                        .setId("1")
-                        .setLogo("")
-                        .setState("active")
-                        .setTitle("Magical IG Tributed To Eclipse News Sources")
-                        .setDescription(Descriptor.builder().setFull("Sample").setSummary("Sample").build())
-                        .setScope(Descriptor.builder().setFull("Sample").setSummary("Sample").build())
-                        .setGitlab(GitlabProject
+                        .projectId("foundation-internal.ig.mittens")
+                        .id("1")
+                        .logo("")
+                        .state("active")
+                        .title("Magical IG Tributed To Eclipse News Sources")
+                        .description(InterestGroupDescriptorBuilder.builder().full("Sample").summary("Sample").build())
+                        .scope(InterestGroupDescriptorBuilder.builder().full("Sample").summary("Sample").build())
+                        .gitlab(GitlabProjectBuilder
                                 .builder()
-                                .setIgnoredSubGroups(Collections.emptyList())
-                                .setProjectGroup("eclipse-ig/mittens")
+                                .ignoredSubGroups(Collections.emptyList())
+                                .projectGroup("eclipse-ig/mittens")
                                 .build())
-                        .setLeads(Arrays
-                                .asList(InterestGroupParticipant
+                        .leads(Arrays
+                                .asList(InterestGroupInterestGroupParticipantBuilder
                                         .builder()
-                                        .setUrl("https://api.eclipse.org/account/profile/zacharysabourin")
-                                        .setUsername("zacharysabourin")
-                                        .setFullName("zachary sabourin")
-                                        .setOrganization(Organization
+                                        .url("https://api.eclipse.org/account/profile/zacharysabourin")
+                                        .username("zacharysabourin")
+                                        .fullName("zachary sabourin")
+                                        .organization(InterestGroupOrganizationBuilder
                                                 .builder()
-                                                .setDocuments(Collections.emptyMap())
-                                                .setId("id")
-                                                .setName("org")
+                                                .documents(Collections.emptyMap())
+                                                .id("id")
+                                                .name("org")
                                                 .build())
                                         .build()))
-                        .setParticipants(Arrays
-                                .asList(InterestGroupParticipant
+                        .participants(Arrays
+                                .asList(InterestGroupInterestGroupParticipantBuilder
                                         .builder()
-                                        .setUrl("https://api.eclipse.org/account/profile/skilpatrick")
-                                        .setUsername("skilpatrick")
-                                        .setFullName("Skil Patrick")
-                                        .setOrganization(Organization
+                                        .url("https://api.eclipse.org/account/profile/skilpatrick")
+                                        .username("skilpatrick")
+                                        .fullName("Skil Patrick")
+                                        .organization(InterestGroupOrganizationBuilder
                                                 .builder()
-                                                .setDocuments(Collections.emptyMap())
-                                                .setId("id")
-                                                .setName("org")
+                                                .documents(Collections.emptyMap())
+                                                .id("id")
+                                                .name("org")
                                                 .build())
                                         .build()))
-                        .setShortProjectId("mittens")
-                        .setResources(Resource.builder().setMembers("members").setWebsite("google.com").build())
-                        .setMailingList("mailinglist.com")
+                        .shortProjectId("mittens")
+                        .resources(InterestGroupResourceBuilder.builder().members("members").website("google.com").build())
+                        .mailingList("mailinglist.com")
                         .build());
     }