diff --git a/.gitignore b/.gitignore
index 76d963dc1f92dc0530510eda3fe43c305bf0d39c..d5f56ddd691f1b95cd115b7425d0d96918a0c339 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,4 +33,5 @@ build/
 ### Other ###
 .mvn
 target/*
-*/target
\ No newline at end of file
+*/target
+/mvn
diff --git a/indexer-service-azure/src/main/java/org/opendes/indexer/azure/persistence/ElasticRepositoryCosmosDB.java b/indexer-service-azure/src/main/java/org/opendes/indexer/azure/persistence/ElasticRepositoryCosmosDB.java
index b5796c629c3eef1dbbff4ece7e914ebe5520eaf3..e52e5b53694a58f755c2dc1414dc04507e8b4d39 100644
--- a/indexer-service-azure/src/main/java/org/opendes/indexer/azure/persistence/ElasticRepositoryCosmosDB.java
+++ b/indexer-service-azure/src/main/java/org/opendes/indexer/azure/persistence/ElasticRepositoryCosmosDB.java
@@ -3,7 +3,9 @@ package org.opendes.indexer.azure.persistence;
 import org.opendes.client.multitenancy.TenantInfo;
 import org.opendes.core.model.ClusterSettings;
 import org.opendes.core.persistence.ElasticRepository;
+import org.springframework.stereotype.Component;
 
+@Component
 public class ElasticRepositoryCosmosDB implements ElasticRepository {
     @Override
     public ClusterSettings getElasticClusterSettings(TenantInfo tenantInfo) {
diff --git a/indexer-service-gcp/src/main/java/org/opendes/indexer/IndexerGcpApplication.java b/indexer-service-gcp/src/main/java/org/opendes/indexer/IndexerGcpApplication.java
index f066dd1436dbe75d6db388350df458786df12a0f..275c95fb35cf40ecdca384399a540329388887cd 100644
--- a/indexer-service-gcp/src/main/java/org/opendes/indexer/IndexerGcpApplication.java
+++ b/indexer-service-gcp/src/main/java/org/opendes/indexer/IndexerGcpApplication.java
@@ -9,7 +9,7 @@ import org.springframework.context.annotation.Configuration;
 
 @SpringBootApplication(exclude = { SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class })
 @Configuration
-@ComponentScan("org.opendes.core")
+@ComponentScan({"org.opendes.core", "org.opendes.indexer"})
 public class IndexerGcpApplication {
 
     public static void main(String[] args) {
diff --git a/indexer-service-gcp/src/main/java/org/opendes/indexer/api/Hello.java b/indexer-service-gcp/src/main/java/org/opendes/indexer/api/Hello.java
index be235c99dfaf740436509a391110f7f84fa62c99..fd9966b49b6b52e8f9fc88e4ae4fc0e1813d4e6e 100644
--- a/indexer-service-gcp/src/main/java/org/opendes/indexer/api/Hello.java
+++ b/indexer-service-gcp/src/main/java/org/opendes/indexer/api/Hello.java
@@ -1,12 +1,14 @@
 package org.opendes.indexer.api;
 
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
+@RequestMapping
 public class Hello {
 
-    @RequestMapping("/hello")
+    @GetMapping("/hello")
    public String Default() {
        return "Hello Indexer!!!";
    }
diff --git a/indexer-service-gcp/src/main/java/org/opendes/indexer/cache/DatastoreCredentialCache.java b/indexer-service-gcp/src/main/java/org/opendes/indexer/cache/DatastoreCredentialCache.java
index 68b99719a543c3a4f9b9c16e7d09fac3ab10d551..e0d9dc86b9d4d7d913f14baaa32860a0b68a13a5 100644
--- a/indexer-service-gcp/src/main/java/org/opendes/indexer/cache/DatastoreCredentialCache.java
+++ b/indexer-service-gcp/src/main/java/org/opendes/indexer/cache/DatastoreCredentialCache.java
@@ -17,7 +17,9 @@ package org.opendes.indexer.cache;
 import com.google.auth.oauth2.AccessToken;
 import org.opendes.client.cache.RedisCache;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
 
+@Component
 public class DatastoreCredentialCache extends RedisCache<String, AccessToken> {
 
 	// Datastore credentials are only valid for 1hr, release the key 2 minutes before the expiration
diff --git a/indexer-service-gcp/src/main/java/org/opendes/indexer/di/DpsHeaderFactory.java b/indexer-service-gcp/src/main/java/org/opendes/indexer/di/DpsHeaderFactory.java
deleted file mode 100644
index cd0b66653ab0d5f852c5777fac1be2d220a044fa..0000000000000000000000000000000000000000
--- a/indexer-service-gcp/src/main/java/org/opendes/indexer/di/DpsHeaderFactory.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.opendes.indexer.di;
-
-import org.opendes.client.api.DpsHeaders;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.context.annotation.RequestScope;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Collections;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-@Component
-@RequestScope
-public class DpsHeaderFactory extends DpsHeaders {
-    @Autowired
-    public DpsHeaderFactory(HttpServletRequest request) {
-        Map<String, String> headers = Collections
-                .list(request.getHeaderNames())
-                .stream()
-                .collect(Collectors.toMap(h -> h, request::getHeader));
-        DpsHeaders dps = DpsHeaders.createFromMap(headers);
-        dps.getHeaders().forEach( (k, v) -> this.put(k,v));
-        //Added for Indexer
-        headers.forEach((k, v) -> this.put(k,v));
-    }
-}
\ No newline at end of file
diff --git a/indexer-service-gcp/src/main/java/org/opendes/indexer/di/EntitlementsClientFactory.java b/indexer-service-gcp/src/main/java/org/opendes/indexer/di/EntitlementsClientFactory.java
deleted file mode 100644
index 0bb771696bc84c01104a9d8fc827f0e6b7f7b8a5..0000000000000000000000000000000000000000
--- a/indexer-service-gcp/src/main/java/org/opendes/indexer/di/EntitlementsClientFactory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2017-2019, Schlumberger
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package org.opendes.indexer.di;
-
-import org.opendes.client.api.entitlements.EntitlementsAPIConfig;
-import org.opendes.client.api.entitlements.EntitlementsFactory;
-import org.opendes.client.api.entitlements.IEntitlementsFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.beans.factory.config.AbstractFactoryBean;
-import org.springframework.stereotype.Component;
-
-@Component
-public class EntitlementsClientFactory extends AbstractFactoryBean<IEntitlementsFactory> {
-
-    @Value("${AUTHORIZE_API}")
-    public String AUTHORIZE_API;
-
-    @Override
-    protected IEntitlementsFactory createInstance() throws Exception {
-
-        return new EntitlementsFactory(EntitlementsAPIConfig.builder().rootUrl(AUTHORIZE_API).build());
-    }
-
-    @Override
-    public Class<?> getObjectType() {
-        return IEntitlementsFactory.class;
-    }
-}
\ No newline at end of file
diff --git a/indexer-service-gcp/src/main/java/org/opendes/indexer/di/PubSubExtensionsFactory.java b/indexer-service-gcp/src/main/java/org/opendes/indexer/di/PubSubExtensionsFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..5634205550b9439c4b52138c4fae25de881790fc
--- /dev/null
+++ b/indexer-service-gcp/src/main/java/org/opendes/indexer/di/PubSubExtensionsFactory.java
@@ -0,0 +1,19 @@
+package org.opendes.indexer.di;
+
+import org.opendes.client.gcp.PubSub.PubSubExtensions;
+import org.springframework.beans.factory.config.AbstractFactoryBean;
+import org.springframework.stereotype.Component;
+
+@Component
+public class PubSubExtensionsFactory extends AbstractFactoryBean<PubSubExtensions> {
+
+    @Override
+    public Class<?> getObjectType() {
+        return PubSubExtensions.class;
+    }
+
+    @Override
+    protected PubSubExtensions createInstance() throws Exception {
+        return new PubSubExtensions();
+    }
+}
diff --git a/indexer-service-gcp/src/main/java/org/opendes/indexer/kms/KmsClient.java b/indexer-service-gcp/src/main/java/org/opendes/indexer/kms/KmsClient.java
index adc5b37e113f4aa00773d984f283dcd0b6199667..f2c4304bff21eefeeced3a504457f6b968d6376d 100644
--- a/indexer-service-gcp/src/main/java/org/opendes/indexer/kms/KmsClient.java
+++ b/indexer-service-gcp/src/main/java/org/opendes/indexer/kms/KmsClient.java
@@ -29,10 +29,12 @@ import org.opendes.core.kms.IKmsClient;
 import org.opendes.core.util.Config;
 import org.opendes.core.util.Preconditions;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
 
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 
+@Component
 public class KmsClient implements IKmsClient {
 
     @Value("${KMS_KEY}")
diff --git a/indexer-service-gcp/src/main/java/org/opendes/indexer/persistence/DatastoreFactory.java b/indexer-service-gcp/src/main/java/org/opendes/indexer/persistence/DatastoreFactory.java
index be332008bf13ba22e004fbabe48fcf41fb443bba..c5c3b51cb6d94652fa4a230f528b3f1867307355 100644
--- a/indexer-service-gcp/src/main/java/org/opendes/indexer/persistence/DatastoreFactory.java
+++ b/indexer-service-gcp/src/main/java/org/opendes/indexer/persistence/DatastoreFactory.java
@@ -22,11 +22,13 @@ import com.google.cloud.http.HttpTransportOptions;
 import org.opendes.client.multitenancy.TenantInfo;
 import org.opendes.indexer.cache.DatastoreCredentialCache;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 import org.threeten.bp.Duration;
 
 import java.util.HashMap;
 import java.util.Map;
 
+@Component
 public class DatastoreFactory {
 
     @Autowired
diff --git a/indexer-service-gcp/src/main/java/org/opendes/indexer/publish/PublisherImpl.java b/indexer-service-gcp/src/main/java/org/opendes/indexer/publish/PublisherImpl.java
index 2fb26fbb654ac061b047387810d7e5e146c03701..3c1ef58dec682b6f35e843176547892b74256732 100644
--- a/indexer-service-gcp/src/main/java/org/opendes/indexer/publish/PublisherImpl.java
+++ b/indexer-service-gcp/src/main/java/org/opendes/indexer/publish/PublisherImpl.java
@@ -37,6 +37,7 @@ import org.opendes.indexer.model.RecordStatus;
 import org.opendes.indexer.publish.IPublisher;
 import org.opendes.indexer.util.JobStatus;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 import org.threeten.bp.Duration;
 
 import java.io.IOException;
@@ -45,6 +46,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+@Component
 public class PublisherImpl implements IPublisher {
 
     private static final Map<String, Publisher> PUBSUB_CLIENTS = new HashMap<>();
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/api/HealthCheckApi.java b/indexer-service-root/src/main/java/org/opendes/indexer/api/HealthCheckApi.java
index 47fcc963a1f70f5e874d6cd8e4584d4507f925ab..1a30a8c38dee369435828cccc00147f63e32f2a5 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/api/HealthCheckApi.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/api/HealthCheckApi.java
@@ -14,6 +14,8 @@
 
 package org.opendes.indexer.api;
 
+import lombok.extern.java.Log;
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -22,19 +24,26 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.security.PermitAll;
 
+@Log
 @RestController
 @RequestMapping("/_ah")
 public class HealthCheckApi {
 
-    @PermitAll
-    @GetMapping("/liveness_check")
+//    @PermitAll
+    @GetMapping("/liveness_check_foo")
     public ResponseEntity<String> livenessCheck(){
+        log.info("HELLO LVIENESS");
         return new ResponseEntity<String>("Indexer service is alive", org.springframework.http.HttpStatus.OK);
     }
 
-    @PermitAll
+//    @PermitAll
     @GetMapping("/readiness_check")
     public ResponseEntity<String> readinessCheck() {
         return new ResponseEntity<String>("Legal service is ready", HttpStatus.OK);
     }
+
+    @GetMapping("/jagan")
+    public ResponseEntity<String> hello() {
+        return new ResponseEntity<>("Hello Jagan", HttpStatus.OK);
+    }
 }
\ No newline at end of file
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/api/RecordIndexerApi.java b/indexer-service-root/src/main/java/org/opendes/indexer/api/RecordIndexerApi.java
index ee4bc61449b8c320c660aa8e0d74ecfcb2f9c23d..74e0ab7c3dd7be9544d10e54adfe727ba033af3e 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/api/RecordIndexerApi.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/api/RecordIndexerApi.java
@@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.security.PermitAll;
 import javax.validation.Valid;
 import javax.validation.constraints.NotNull;
 import java.lang.reflect.Type;
@@ -46,7 +47,8 @@ public class RecordIndexerApi {
 
     // THIS IS AN INTERNAL USE API ONLY
     // THAT MEANS WE DON'T DOCUMENT IT IN SWAGGER, ACCESS IS LIMITED TO CLOUD TASK QUEUE CALLS ONLY
-    @PostMapping("/index-worker")
+//    @PermitAll
+    @PostMapping(path = "/index-worker", consumes = "application/json")
     @ApiOperation(hidden = true, value = "", notes = "")
     public ResponseEntity<JobStatus> indexWorker (
             @Valid @RequestBody @NotNull(message = SwaggerDoc.REQUEST_VALIDATION_NOT_NULL_BODY)
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/cache/SchemaCache.java b/indexer-service-root/src/main/java/org/opendes/indexer/cache/SchemaCache.java
index 29dc13dbe1afe1e5c9a496b0f202d6690e08335b..ab12d96a7518e5c00df9e47f4556436b8041c08a 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/cache/SchemaCache.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/cache/SchemaCache.java
@@ -16,10 +16,16 @@ package org.opendes.indexer.cache;
 
 import org.opendes.client.cache.RedisCache;
 import org.opendes.core.util.Config;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
 
+@Component
 public class SchemaCache extends RedisCache<String, String> {
 
-    public SchemaCache() {
-        super(Config.getSearchRedisHost(), Config.getSearchRedisPort(), Config.getSchemaCacheExpiration() * 60, String.class, String.class);
+    public SchemaCache(@Value("${REDIS_SEARCH_HOST}") final String REDIS_SEARCH_HOST,
+                       @Value("${REDIS_SEARCH_PORT}") final String REDIS_SEARCH_PORT,
+                       @Value("${SCHEMA_CACHE_EXPIRATION}") final String SCHEMA_CACHE_EXPIRATION) {
+        super(REDIS_SEARCH_HOST, Integer.parseInt(REDIS_SEARCH_PORT),
+                Integer.parseInt(SCHEMA_CACHE_EXPIRATION) * 60, String.class, String.class);
     }
 }
\ No newline at end of file
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/logging/AuditLogger.java b/indexer-service-root/src/main/java/org/opendes/indexer/logging/AuditLogger.java
index eb4f1663248eb2a8eb2c4abaa9a911978df168d7..75862688d3e6a602ea134b80218e64670c7fb2be 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/logging/AuditLogger.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/logging/AuditLogger.java
@@ -17,6 +17,7 @@ package org.opendes.indexer.logging;
 import org.opendes.client.logging.payload.AuditPayload;
 import org.opendes.core.logging.JaxRsDpsLog;
 import org.opendes.core.util.HeadersInfo;
+import org.opendes.core.util.IHeadersInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -28,7 +29,7 @@ public class AuditLogger {
     @Autowired
     private JaxRsDpsLog logger;
     @Autowired
-    private HeadersInfo headers;
+    private IHeadersInfo headers;
 
     private AuditEvents events = null;
 
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/middleware/IndexerFilter.java b/indexer-service-root/src/main/java/org/opendes/indexer/middleware/IndexerFilter.java
index 043c645f14e06988a75c92f7a9c7b136dcddfb81..103120d942d1fdd2d17d508d2182f3c61caff23b 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/middleware/IndexerFilter.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/middleware/IndexerFilter.java
@@ -21,6 +21,7 @@ import com.google.common.base.Strings;
 import org.apache.http.HttpStatus;
 import org.opendes.client.api.DpsHeaders;
 import org.opendes.core.auth.AuthorizationService;
+import org.opendes.core.logging.JaxRsDpsLog;
 import org.opendes.core.model.AuthorizationResponse;
 import org.opendes.core.util.AppException;
 import org.opendes.indexer.util.IRequestInfo;
@@ -53,8 +54,8 @@ public class IndexerFilter implements Filter {
     private ResourceInfo resourceInfo;
     @Autowired
     private AuthorizationService authorizationService;
-//    @Autowired
-//    private JaxRsDpsLog log;
+    @Autowired
+    private JaxRsDpsLog log;
     @Autowired
     private IRequestInfo requestInfoProvider;
 
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/model/IndexProgress.java b/indexer-service-root/src/main/java/org/opendes/indexer/model/IndexProgress.java
index 114908fd3ffaf205d9c6a6d6d55030c284ecf626..ee2515cd41da53559a188980d1e2ce3885606781 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/model/IndexProgress.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/model/IndexProgress.java
@@ -16,11 +16,15 @@ package org.opendes.indexer.model;
 
 import lombok.Builder;
 import lombok.Data;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Component;
 
 import java.util.Stack;
 
 @Data
 @Builder
+@Component
+@Lazy
 public class IndexProgress {
     private int statusCode;
     private Stack<String> trace;
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/model/RecordStatus.java b/indexer-service-root/src/main/java/org/opendes/indexer/model/RecordStatus.java
index 3932c525aca4d4a56ccb963b8fd40bb22bdeb999..7cdb4f453d633bf611883182c245fe2facc28f58 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/model/RecordStatus.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/model/RecordStatus.java
@@ -18,20 +18,23 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.ToString;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
 
 @Data
 @Builder
-@ToString
+@Component
+@Lazy
 public class RecordStatus {
 
     private String id;
     private String kind;
     private String operationType;
 
-    @Autowired
     private IndexingStatus status;
 
-    @Autowired
     @ToString.Exclude private IndexProgress indexProgress;
 
     public String getLatestTrace() {
diff --git a/indexer-service-gcp/src/main/java/org/opendes/indexer/service/ElasticSettingServiceImpl.java b/indexer-service-root/src/main/java/org/opendes/indexer/service/ElasticSettingServiceImpl.java
similarity index 100%
rename from indexer-service-gcp/src/main/java/org/opendes/indexer/service/ElasticSettingServiceImpl.java
rename to indexer-service-root/src/main/java/org/opendes/indexer/service/ElasticSettingServiceImpl.java
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/service/IndexCopyServiceImpl.java b/indexer-service-root/src/main/java/org/opendes/indexer/service/IndexCopyServiceImpl.java
index 925d00d4adbef09a7e1e9cdb48d491a65aeeb324..0f6c91fe5ba1785180464eb9d1930dc213824fd3 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/service/IndexCopyServiceImpl.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/service/IndexCopyServiceImpl.java
@@ -54,7 +54,7 @@ public class IndexCopyServiceImpl implements IndexCopyService {
     @Autowired
     private IndexerMappingService mappingService;
     @Autowired
-    private HeadersInfo headersInfo;
+    private IHeadersInfo headersInfo;
     @Autowired
     private AuditLogger auditLogger;
 
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/service/IndexerServiceImpl.java b/indexer-service-root/src/main/java/org/opendes/indexer/service/IndexerServiceImpl.java
index c41f4d9c92478399e8224ee2c946cc80d55fe2f5..226a15ad8506c5c129de618035927c097637905e 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/service/IndexerServiceImpl.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/service/IndexerServiceImpl.java
@@ -91,7 +91,7 @@ public class IndexerServiceImpl implements IndexerService {
     @Autowired
     private ElasticIndexNameResolver elasticIndexNameResolver;
     @Autowired
-    private AttributeParsingServiceImpl attributeParsingServiceImpl;
+    private IAttributeParsingService attributeParsingServiceImpl;
     @Autowired
     private IRequestInfo requestInfo;
     @Autowired
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/service/ReindexServiceImpl.java b/indexer-service-root/src/main/java/org/opendes/indexer/service/ReindexServiceImpl.java
index 8e3643dab01e5004e0cb64aef3f4cbf1f55d05c8..8fe9f992bd77fdc8eab818580bfd18f850b5a1ea 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/service/ReindexServiceImpl.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/service/ReindexServiceImpl.java
@@ -28,12 +28,14 @@ import org.opendes.indexer.util.IRequestInfo;
 import org.opendes.indexer.util.IndexerQueueTaskBuilder;
 import org.opendes.indexer.util.RecordInfo;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+@Component
 public class ReindexServiceImpl implements ReindexService {
 
     @Autowired
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/service/StorageServiceImpl.java b/indexer-service-root/src/main/java/org/opendes/indexer/service/StorageServiceImpl.java
index 933a3ce63cfb3d4912cee967756502df3740488c..3ebe24074802162896ac1959e8632b179ae49933 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/service/StorageServiceImpl.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/service/StorageServiceImpl.java
@@ -32,6 +32,7 @@ import org.opendes.indexer.util.IRequestInfo;
 import org.opendes.indexer.util.JobStatus;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.apache.http.HttpStatus;
+import org.springframework.stereotype.Component;
 
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Type;
@@ -45,6 +46,7 @@ import java.util.Map;
 import static org.opendes.core.model.SlbHeaders.SLB_FRAME_OF_REFERENCE;
 import static org.opendes.core.util.Constants.SLB_FRAME_OF_REFERENCE_VALUE;
 
+@Component
 public class StorageServiceImpl implements StorageService {
 
     private final Gson gson = new Gson();
diff --git a/indexer-service-gcp/src/main/java/org/opendes/indexer/service/TenantInfoServiceImpl.java b/indexer-service-root/src/main/java/org/opendes/indexer/service/TenantInfoServiceImpl.java
similarity index 100%
rename from indexer-service-gcp/src/main/java/org/opendes/indexer/service/TenantInfoServiceImpl.java
rename to indexer-service-root/src/main/java/org/opendes/indexer/service/TenantInfoServiceImpl.java
diff --git a/indexer-service-root/src/main/java/org/opendes/indexer/util/JobStatus.java b/indexer-service-root/src/main/java/org/opendes/indexer/util/JobStatus.java
index e30a01246e450fdd0d5cd0e2651591a5fc381e11..542cf6d474fa0e63c4f4bd0fd46d97ebe5ec6a97 100644
--- a/indexer-service-root/src/main/java/org/opendes/indexer/util/JobStatus.java
+++ b/indexer-service-root/src/main/java/org/opendes/indexer/util/JobStatus.java
@@ -19,21 +19,21 @@ import org.opendes.core.logging.JaxRsDpsLog;
 import org.opendes.indexer.model.*;
 import lombok.Data;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 import java.time.Instant;
 import java.util.*;
 import java.util.stream.Collectors;
 
+@Component
 @Data
 public class JobStatus {
 
     @Autowired
     private JaxRsDpsLog log;
 
-    @Autowired
     private List<RecordStatus> statusesList;
 
-    @Autowired
     private List<String> debugInfos;
 
     public void initialize(List<RecordInfo> recordInfos) {
diff --git a/indexer-service-gcp/src/test/java/org/opendes/indexer/service/ElasticSettingServiceTest.java b/indexer-service-root/src/test/java/org/opendes/indexer/service/ElasticSettingServiceTest.java
similarity index 100%
rename from indexer-service-gcp/src/test/java/org/opendes/indexer/service/ElasticSettingServiceTest.java
rename to indexer-service-root/src/test/java/org/opendes/indexer/service/ElasticSettingServiceTest.java
diff --git a/indexer-service-gcp/src/test/java/org/opendes/indexer/service/TenantInfoServiceTest.java b/indexer-service-root/src/test/java/org/opendes/indexer/service/TenantInfoServiceTest.java
similarity index 100%
rename from indexer-service-gcp/src/test/java/org/opendes/indexer/service/TenantInfoServiceTest.java
rename to indexer-service-root/src/test/java/org/opendes/indexer/service/TenantInfoServiceTest.java
diff --git a/pom.xml b/pom.xml
index 9ec87062b37e44a41043447e3a963202b3bb3aa9..151d85522e1fd6c95d270a9dd25817f5392a13bb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,6 +16,12 @@
     <packaging>pom</packaging>
     <version>1.0-SNAPSHOT</version>
     <description>Indexer Service</description>
+<!--    <modules>-->
+<!--        <module>indexer-service-root</module>-->
+<!--        <module>indexer-service-gcp</module>-->
+<!--        <module>indexer-service-azure</module>-->
+<!--    </modules>-->
+
     <properties>
         <java.version>1.8</java.version>
         <springfox-version>2.7.0</springfox-version>