diff --git a/.github/workflows/test-and-deploy.yml b/.github/workflows/test-and-deploy.yml
index b0b5ee81b..aeebb9267 100644
--- a/.github/workflows/test-and-deploy.yml
+++ b/.github/workflows/test-and-deploy.yml
@@ -17,7 +17,7 @@ jobs:
     timeout-minutes: 20
     strategy:
       matrix:
-        node: [ '6', '7', '8', '10', '12', '14', '16', 'lts' ]
+        node: [10, 14, 16, lts]
     env:
       version: ${{ matrix.node }}
       DOCKER_LOGIN: ${{ secrets.DOCKER_USERNAME && secrets.DOCKER_AUTH_TOKEN }}
diff --git a/package.json b/package.json
index 628a4aced..bb189642e 100644
--- a/package.json
+++ b/package.json
@@ -23,7 +23,7 @@
     "moment": "^2.19.3",
     "sinon": "^2.3.2",
     "sinon-chai": "^2.10.0",
-    "typescript": "^3.7.4"
+    "typescript": "^4.0.0"
   },
   "scripts": {
     "lint": "if [ `node --version | cut -d'.' -f1 | cut -c 2` -ge \"8\" ]; then eslint . --fix; else echo \"eslint is not available for node < 8.0\"; fi",
diff --git a/packages/client/src/classes/client.js b/packages/client/src/classes/client.js
index 8d756df3a..791dc6201 100644
--- a/packages/client/src/classes/client.js
+++ b/packages/client/src/classes/client.js
@@ -105,6 +105,7 @@ class Client {
     } else {
       this.setDefaultRequest('baseUrl', REGION_HOST_MAP[region]);
     }
+    return this;
   }
 
   createHeaders(data) {
diff --git a/packages/client/src/client.d.ts b/packages/client/src/client.d.ts
index fb84f7cb1..84075d1f9 100644
--- a/packages/client/src/client.d.ts
+++ b/packages/client/src/client.d.ts
@@ -30,6 +30,11 @@ declare class Client {
    */
   setDefaultRequest<K extends keyof ClientRequest>(key: K | ClientRequest, value ?: ClientRequest[K]): this;
 
+  /**
+   * Sets the data residency as per region provided
+   */
+  setDataResidency(region: string): this;
+
   /**
    * Create headers for request
    */
diff --git a/packages/client/src/client.spec.js b/packages/client/src/client.spec.js
index 536515615..0b78d6496 100644
--- a/packages/client/src/client.spec.js
+++ b/packages/client/src/client.spec.js
@@ -1,7 +1,7 @@
 'use strict';
 const nock = require('nock');
 const sgClient = require('./client');
-
+const testClient = require('./client');
 const testRequest = (request, statusCode) => {
   const sgClient = require('./client');
   sgClient.setApiKey('SG.API Key');
@@ -3093,11 +3093,20 @@ describe('test_whitelabel_links__link_id__subuser_post', () => {
   });
 });
 
-describe('setDataResidency', () => {
-  const sgClient = require('./client');
-  sgClient.setDataResidency('eu');
 
-  it('should have host as eu', () => {
-    expect(sgClient.baseUrl).to.equal('api.eu.sendgrid.com');
+describe('test client', () => {
+  const testClient = require('./client');
+  describe('setDataResidency', () => {
+    testClient.setDataResidency('eu');
+    console.log('before: ');
+    console.log(testClient);
+    console.log('Actual:', testClient.defaultRequest.baseUrl);
+    it('should have hostname as global', () => {
+      testClient.setDataResidency('eu');
+      console.log('after: ');
+      console.log(testClient);
+      expect(testClient.defaultRequest.baseUrl).to.equal('api.eu.sendgrid.com');
+    });
   });
 });
+