diff --git a/provider/partition-aws/pom.xml b/provider/partition-aws/pom.xml
index ffeec3c155990010629fa5ea4ac551e4cdd96c90..14762c776b4ae158923277192f42556a0fed745e 100644
--- a/provider/partition-aws/pom.xml
+++ b/provider/partition-aws/pom.xml
@@ -57,7 +57,7 @@
         <dependency>
             <groupId>org.opengroup.osdu.core.aws</groupId>
             <artifactId>os-core-lib-aws</artifactId>
-            <version>0.13.0</version>
+            <version>0.14.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.opengroup.osdu</groupId>
diff --git a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/PartitionApplication.java b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/PartitionApplication.java
index 73a6259f7cc1f45c028c844864b0ff37b0355ea9..789c48bcf2035f3450b42b70fe2f27d99db6d463 100644
--- a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/PartitionApplication.java
+++ b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/PartitionApplication.java
@@ -14,15 +14,12 @@
 
 package org.opengroup.osdu.partition.provider.aws;
 
-import org.opengroup.osdu.core.aws.mongodb.config.MongoDBAutoconfigExclude;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.FilterType;
 
 @ComponentScan(
-        basePackages = {"org.opengroup.osdu"},
-        excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = MongoDBAutoconfigExclude.class)})
+        basePackages = {"org.opengroup.osdu"})
 @SpringBootApplication
 public class PartitionApplication {
 
diff --git a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoConfig.java b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoConfig.java
index 60105104c7ea1ae571321dd521d41fb77479c926..3bc84710e3075e2b455909c210a2704f7dd1bb0e 100644
--- a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoConfig.java
+++ b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoConfig.java
@@ -14,62 +14,18 @@
 
 package org.opengroup.osdu.partition.provider.aws.util;
 
-import com.mongodb.ConnectionString;
+import org.opengroup.osdu.core.aws.mongodb.MongoDBSimpleFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.data.mongodb.core.MongoClientFactoryBean;
-
-import javax.inject.Inject;
+import org.springframework.data.mongodb.core.MongoTemplate;
 
 @Configuration
 public class MongoConfig {
 
-    @Inject
-    MongoProperties props;
-
-    public String getMongoURI() {
-
-        Boolean useSrvEndpoint = Boolean.parseBoolean(props.getUseSrvEndpointStr());
-
-        if (useSrvEndpoint) {
-
-            String srvUriFormat = "mongodb+srv://%s:%s@%s/%s?ssl=%s&retryWrites=%s&w=%s";
-
-            String srvUri = String.format(
-                    srvUriFormat,
-                    props.getUsername(),
-                    props.getPassword(),
-                    props.getEndpoint(),
-                    props.getAuthDatabase(),
-                    props.getEnableTLS(),
-                    props.getRetryWrites(),
-                    props.getWriteMode());
-
-            return srvUri;
-        }
-        else {
-            String uriFormat = "mongodb+srv://%s:%s@%s/%s?retryWrites=%s&w=%s";
-
-            String uri = String.format(
-                    uriFormat,
-                    props.getUsername(),
-                    props.getPassword(),
-                    props.getEndpoint(),
-                    props.getAuthDatabase(),
-//                    props.getEnableTLS(),
-                    props.getRetryWrites(),
-                    props.getWriteMode());
-
-            return uri;
-        }
-    }
-
-    public @Bean MongoClientFactoryBean mongo() {
-        ConnectionString connectionString = new ConnectionString(this.getMongoURI());
-
-        MongoClientFactoryBean mongo = new MongoClientFactoryBean();
-        mongo.setConnectionString(connectionString);
 
-        return mongo;
+    @Autowired
+    public @Bean MongoTemplate mongoTemplate(MongoDBSimpleFactory mongoDBFactory, MongoPropertiesReader propertiesReader) {
+        return mongoDBFactory.mongoTemplate(propertiesReader.getProperties());
     }
 }
diff --git a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoProperties.java b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoPropertiesReader.java
similarity index 69%
rename from provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoProperties.java
rename to provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoPropertiesReader.java
index 432b5214a556d9ef6c27a576293207f2927cc5ea..f462f4ac0a0751d3e5e25fcc0e147c03fe22581a 100644
--- a/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoProperties.java
+++ b/provider/partition-aws/src/main/java/org/opengroup/osdu/partition/provider/aws/util/MongoPropertiesReader.java
@@ -15,22 +15,18 @@
 
 package org.opengroup.osdu.partition.provider.aws.util;
 
-import java.util.Map;
-
-import javax.annotation.PostConstruct;
-
 import com.fasterxml.jackson.core.JsonProcessingException;
-
+import org.opengroup.osdu.core.aws.mongodb.config.MongoProperties;
 import org.opengroup.osdu.core.aws.ssm.K8sLocalParameterProvider;
 import org.opengroup.osdu.core.aws.ssm.K8sParameterNotFoundException;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
-import lombok.Data;
+import javax.annotation.PostConstruct;
+import java.util.Map;
 
-@Data
 @Component
-public class MongoProperties {
+public class MongoPropertiesReader {
 
     @Value("${osdu.mongodb.username}")
     private String username;
@@ -50,6 +46,12 @@ public class MongoProperties {
     private String useSrvEndpointStr;
     @Value("${osdu.mongodb.enableTLS}")
     private String enableTLS;
+    @Value("${spring.data.mongodb.database}")
+    private String databaseName;
+    @Value("${osdu.mongodb.maxPoolSize}")
+    private String maxPoolSize;
+    @Value("${osdu.mongodb.readPreference}")
+    private String readPreference;
 
     @PostConstruct
     private void init() throws K8sParameterNotFoundException, JsonProcessingException {
@@ -57,7 +59,7 @@ public class MongoProperties {
         K8sLocalParameterProvider provider = new K8sLocalParameterProvider();
 
         if (!provider.getLocalMode()) {
-            Map<String,String> credentials = provider.getCredentialsAsMap("mongodb_credentials");
+            Map<String, String> credentials = provider.getCredentialsAsMap("mongodb_credentials");
 
             if (credentials != null) {
                 username = credentials.get("username");
@@ -71,6 +73,20 @@ public class MongoProperties {
         }
     }
 
-    
-    
+    public MongoProperties getProperties() {
+        return MongoProperties.builder()
+                .username(username)
+                .password(password)
+                .endpoint(endpoint)
+                .authDatabase(authDatabase)
+                .port(port)
+                .retryWrites(retryWrites)
+                .writeMode(writeMode)
+                .useSrvEndpointStr(useSrvEndpointStr)
+                .enableTLS(enableTLS)
+                .databaseName(databaseName)
+                .maxPoolSize(maxPoolSize)
+                .readPreference(readPreference)
+                .build();
+    }
 }
diff --git a/provider/partition-aws/src/main/resources/application.properties b/provider/partition-aws/src/main/resources/application.properties
index aebc3243cc597ac5b23b44b94da740e5b2d04081..cf59ba783156ca1632ae7461a0743683d12503f5 100644
--- a/provider/partition-aws/src/main/resources/application.properties
+++ b/provider/partition-aws/src/main/resources/application.properties
@@ -54,10 +54,15 @@ osdu.mongodb.retryWrites=${MONGODB_RETRY_WRITES:true}
 osdu.mongodb.writeMode=${MONGODB_WRITE_MODE:majority}
 osdu.mongodb.useSrvEndpoint=${MONGODB_USE_SRV_ENDPOINT:true}
 osdu.mongodb.enableTLS=${MONGODB_ENABLE_TLS:false}
+osdu.mongodb.maxPoolSize=${MONGODB_MAX_POOL_SIZE:300}
+osdu.mongodb.readPreference=${MONGODB_READ_PREFERENCE:nearest}
 
 #AWS KMS Config
 aws.kms.keyArn=${KEY_ARN:empty}
 
+#Tomcat limits
+server.tomcat.threads.max=${TOMCAT_THREADS_MAX:300}
+
 spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration
 ## AWS ElastiCache configuration
 aws.elasticache.cluster.endpoint=${CACHE_CLUSTER_ENDPOINT:null}