diff --git a/go.mod b/go.mod
index 5a4c62654be9c4150966208b709b51206a78232d..ac559ba1458f121f2da972246d94344898ffb8ad 100644
--- a/go.mod
+++ b/go.mod
@@ -12,6 +12,7 @@ require (
 	github.com/go-redis/redis/v8 v8.11.4
 	github.com/go-redis/redis_rate/v9 v9.1.2
 	github.com/google/uuid v1.3.0
+	github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826
 	github.com/opensearch-project/opensearch-go v1.1.0
 	github.com/pkg/errors v0.9.1
 	github.com/r3labs/diff/v2 v2.14.2
diff --git a/go.sum b/go.sum
index ba9a7ff8cf137b2fb589ce03e67a0e562766a7a1..2045b77f00a848db31a3131c8678fbca67665df1 100644
--- a/go.sum
+++ b/go.sum
@@ -83,6 +83,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
+github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
+github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
 github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
diff --git a/utils/utils.go b/utils/utils.go
index bdf64cc6d594d411ce33b3ac03300978869e7072..3936b9718dd7f22878984d3f9478c618b65a6921 100644
--- a/utils/utils.go
+++ b/utils/utils.go
@@ -3,7 +3,6 @@ package utils
 import (
 	"archive/zip"
 	"bytes"
-	"encoding/json"
 	"fmt"
 	"io/ioutil"
 	"os"
@@ -11,7 +10,7 @@ import (
 	"strings"
 	"time"
 
-	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/struct_utils"
+	"github.com/mohae/deepcopy"
 )
 
 // GetEnv is a helper function for getting environment variables with a default
@@ -98,16 +97,8 @@ func readZipFile(zipFile *zip.File) ([]byte, error) {
 	return ioutil.ReadAll(zipFileData)
 }
 
-func DeepCopy(toValue interface{}, fromValue interface{}) (err error) {
-	valueBytes, err := json.Marshal(fromValue)
-	if err != nil {
-		return err
-	}
-	err = struct_utils.UnmarshalJSON(valueBytes, toValue)
-	if err != nil {
-		return err
-	}
-	return nil
+func DeepCopy(fromValue interface{}) (toValue interface{}) {
+	return deepcopy.Copy(fromValue)
 }
 
 func UnwrapBool(b *bool) bool {