diff --git a/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/countries/StorageReaderFactoryImpl.java b/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/countries/StorageReaderFactoryImpl.java
index 64ecb945c5c135a6a43de55fda48558a6349891b..48789eba272e6571e47ac211eb6cbdf35be0fcb7 100644
--- a/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/countries/StorageReaderFactoryImpl.java
+++ b/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/countries/StorageReaderFactoryImpl.java
@@ -17,20 +17,17 @@ package org.opengroup.osdu.legal.azure.countries;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import org.opengroup.osdu.azure.blobstorage.IBlobContainerClientFactory;
+import org.opengroup.osdu.azure.blobstorage.BlobStore;
 import org.opengroup.osdu.core.common.model.http.DpsHeaders;
 import org.opengroup.osdu.core.common.model.tenant.TenantInfo;
-import org.opengroup.osdu.core.common.logging.JaxRsDpsLog;
 import org.opengroup.osdu.legal.provider.interfaces.IStorageReader;
 import org.opengroup.osdu.legal.provider.interfaces.IStorageReaderFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 @Component
 public class StorageReaderFactoryImpl implements IStorageReaderFactory {
 
-    @Inject
-    private IBlobContainerClientFactory blobContainerClientFactory;
-
     @Inject
     private DpsHeaders headers;
 
@@ -38,11 +35,11 @@ public class StorageReaderFactoryImpl implements IStorageReaderFactory {
     @Named("STORAGE_CONTAINER_NAME")
     private String containerName;
 
-    @Inject
-    private JaxRsDpsLog logger;
+    @Autowired
+    private BlobStore blobStore;
 
     @Override
     public IStorageReader getReader(TenantInfo tenant, String projectRegion) {
-        return new StorageReaderImpl(tenant, projectRegion, blobContainerClientFactory.getClient(headers.getPartitionId(), containerName), logger);
+        return new StorageReaderImpl(headers.getPartitionId(), containerName, blobStore);
     }
 }
diff --git a/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/countries/StorageReaderImpl.java b/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/countries/StorageReaderImpl.java
index 910e34e9339df6e80fac6e4b7464eeff33c463b9..7f55be34d6447032d723bf75f0b344683cb29952 100644
--- a/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/countries/StorageReaderImpl.java
+++ b/provider/legal-azure/src/main/java/org/opengroup/osdu/legal/azure/countries/StorageReaderImpl.java
@@ -14,57 +14,29 @@
 
 package org.opengroup.osdu.legal.azure.countries;
 
-import com.azure.storage.blob.BlobContainerClient;
-import com.azure.storage.blob.specialized.BlockBlobClient;
-import org.opengroup.osdu.core.common.model.http.AppException;
-import org.opengroup.osdu.core.common.model.tenant.TenantInfo;
-import org.opengroup.osdu.core.common.logging.JaxRsDpsLog;
+import org.opengroup.osdu.azure.blobstorage.BlobStore;
 import org.opengroup.osdu.legal.provider.interfaces.IStorageReader;
 
-import java.io.ByteArrayOutputStream;
 import java.nio.charset.StandardCharsets;
 
 public class StorageReaderImpl implements IStorageReader {
-    private final TenantInfo tenantInfo;
-    private final String cloudRegion;
-    private BlobContainerClient blobContainerClient;
-    private JaxRsDpsLog logger;
+
+    private final BlobStore blobStore;
+
+    private final String dataPartitionId;
+    private final String containerName;
 
     private static final String fileName = "Legal_COO.json";
 
-    public StorageReaderImpl(TenantInfo tenantInfo, String cloudRegion, BlobContainerClient blobContainerClient, JaxRsDpsLog logger) {
-        this.tenantInfo = tenantInfo;
-        this.cloudRegion = cloudRegion;
-        this.blobContainerClient = blobContainerClient;
-        this.logger = logger;
+    public StorageReaderImpl(String dataPartitionId, String containerName, BlobStore blobStore) {
+        this.dataPartitionId = dataPartitionId;
+        this.containerName = containerName;
+        this.blobStore = blobStore;
     }
 
     @Override
     public byte[] readAllBytes() {
-        return  readFromBlobStorage().getBytes(StandardCharsets.UTF_8); //should return a json format of an array of Country class
+        return  blobStore.readFromStorageContainer(dataPartitionId, fileName, containerName).getBytes(StandardCharsets.UTF_8); //should return a json format of an array of Country class
     }
 
-    /**
-     * This function should be fail close. It reads the pre-configuration file for the partition. As a security requirement, we should
-     * fail the corresponding request instead of assuming the content is empty, but it should only fail close on the request level not
-     * service level meaning the service could still start and running probably for the APIs which do not need the pre-configuration file
-     */
-    public String readFromBlobStorage() {
-
-        BlockBlobClient blockBlobClient = blobContainerClient.getBlobClient(fileName).getBlockBlobClient();
-        if (blockBlobClient.exists())
-        {
-            try (ByteArrayOutputStream downloadStream = new ByteArrayOutputStream()) {
-                blockBlobClient.download(downloadStream);
-                String content = downloadStream.toString(StandardCharsets.UTF_8.name());
-                return content;
-            } catch (Exception e) {
-                String message = String.format("read %s failed", fileName);
-                throw new AppException(500, "Server error", message);
-            }
-        } else {
-            String message = String.format("%s does not exist on partition %s", fileName, tenantInfo.getDataPartitionId());
-            throw new AppException(500, "Server error", message);
-        }
-    }
 }
\ No newline at end of file
diff --git a/provider/legal-azure/src/main/resources/application.properties b/provider/legal-azure/src/main/resources/application.properties
index f5d8e74e2ac2386f0fab9a9d85374e0dc4485e09..24909bf5a77445a7f80fe3fbb2c92280c84bc635 100644
--- a/provider/legal-azure/src/main/resources/application.properties
+++ b/provider/legal-azure/src/main/resources/application.properties
@@ -42,6 +42,7 @@ azure.cosmosdb.legal.collection=LegalTag
 # Azure Blob Storage configuration
 azure.storage.container-name=legal-service-azure-configuration
 azure.storage.enable-https=true
+azure.blobStore.required=true
 
 # Azure Service Bus configuration
 azure.servicebus.topic-name=${servicebus_topic_name}