diff --git a/go.mod b/go.mod
index 1a6771d64fe8d31787d559e2609094c1d13bee6f..8ca8e25867b25c6561dca8d611cc605d91d0f81c 100644
--- a/go.mod
+++ b/go.mod
@@ -3,7 +3,6 @@ module gitlab.cs.umd.edu/dawn/go-backend/dawn-gdd
 go 1.16
 
 require (
-	github.com/PuerkitoBio/purell v1.1.1 // indirect
 	github.com/ansrivas/fiberprometheus/v2 v2.1.2
 	github.com/arsmn/fiber-swagger/v2 v2.15.0
 	github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect
@@ -18,7 +17,7 @@ require (
 	github.com/montanaflynn/stats v0.6.6
 	github.com/prometheus/common v0.30.0 // indirect
 	github.com/prometheus/procfs v0.7.2 // indirect
-	github.com/spf13/cobra v1.5.0 // indirect
+	github.com/spf13/cobra v1.5.0
 	github.com/spf13/viper v1.9.0
 	github.com/stretchr/testify v1.7.0
 	github.com/swaggo/swag v1.7.1
diff --git a/go.sum b/go.sum
index 2d9f8182e2d6b59030c6390b42ec7cbb1595c708..1d006198fb311c60b1da832e57511d17a4bbf1bd 100644
--- a/go.sum
+++ b/go.sum
@@ -65,8 +65,6 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF
 github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
 github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
 github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y=
-github.com/andybalholm/brotli v1.0.3 h1:fpcw+r1N1h0Poc1F/pHbW40cUm/lMEQslZtCkBQ0UnM=
-github.com/andybalholm/brotli v1.0.3/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
 github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY=
 github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
 github.com/ansrivas/fiberprometheus/v2 v2.1.2 h1:xhG9rfJuqfpRNVHX4//ZQnKAbBubKDsvVFlGWBH9JsE=
@@ -149,7 +147,6 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo
 github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
 github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
 github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
-github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA=
 github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
 github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
 github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks=
@@ -219,7 +216,6 @@ github.com/gofiber/adaptor/v2 v2.1.14/go.mod h1:s2KVIM9tgTFdbHFd2yUefy80BMIGjU1w
 github.com/gofiber/fiber/v2 v2.2.2/go.mod h1:Aso7/M+EQOinVkWp4LUYjdlTpKTBoCk2Qo4djnMsyHE=
 github.com/gofiber/fiber/v2 v2.6.0/go.mod h1:f8BRRIMjMdRyt2qmJ/0Sea3j3rwwfufPrh9WNBRiVZ0=
 github.com/gofiber/fiber/v2 v2.15.0/go.mod h1:iftruuHGkRYGEXVISmdD7HTYWyfS2Bh+Dkfq4n/1Owg=
-github.com/gofiber/fiber/v2 v2.22.0 h1:+iyKK4ooDH6z0lAHdaWO1AFIB/DZ9AVo6vz8VZIA0EU=
 github.com/gofiber/fiber/v2 v2.22.0/go.mod h1:MR1usVH3JHYRyQwMe2eZXRSZHRX38fkV+A7CPB+DlDQ=
 github.com/gofiber/fiber/v2 v2.31.0 h1:M2rWPQbD5fDVAjcoOLjKRXTIlHesI5Eq7I5FEQPt4Ow=
 github.com/gofiber/fiber/v2 v2.31.0/go.mod h1:1Ega6O199a3Y7yDGuM9FyXDPYQfv+7/y48wl6WCwUF4=
@@ -381,7 +377,6 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
 github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
 github.com/klauspost/compress v1.12.2/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
 github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
-github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc=
 github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
 github.com/klauspost/compress v1.15.0 h1:xqfchp4whNFxn5A4XFyyYtitiWI8Hy5EW59jEwcyL6U=
 github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
@@ -422,6 +417,8 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0j
 github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
 github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
 github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
+github.com/mileusna/useragent v1.2.1 h1:p3RJWhi3LfuI6BHdddojREyK3p6qX67vIfOVMnUIVr0=
+github.com/mileusna/useragent v1.2.1/go.mod h1:3d8TOmwL/5I8pJjyVDteHtgDGcefrFUX4ccGOMKNYYc=
 github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
 github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI=
 github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
@@ -580,38 +577,6 @@ github.com/swaggo/files v0.0.0-20190704085106-630677cd5c14/go.mod h1:gxQT6pBGRuI
 github.com/swaggo/swag v1.7.0/go.mod h1:BdPIL73gvS9NBsdi7M1JOxLvlbfvNRaBP8m6WT6Aajo=
 github.com/swaggo/swag v1.7.1 h1:gY9ZakXlNWg/i/v5bQBic7VMZ4teq4m89lpiao74p/s=
 github.com/swaggo/swag v1.7.1/go.mod h1:gAiHxNTb9cIpNmA/VEGUP+CyZMCP/EW7mdtc8Bny+p8=
-github.com/tgs266/dawn-go-common v0.0.0-20220414205341-0fc3a287ffe9 h1:t992PI+iw1xRr/06NGCiIgYF3IeI4cSr4jDbeQpsm+4=
-github.com/tgs266/dawn-go-common v0.0.0-20220414205341-0fc3a287ffe9/go.mod h1:46t5ci6o7lM7G9XMJzd+oTjC6w8/fo52U/9WgOe9mZQ=
-github.com/tgs266/dawn-go-common v0.0.0-20220414205650-d68d131b5cc0 h1:vlzTBRrSmGZgoQZyKPMmNjuwrdSiUanhci53uGkcjso=
-github.com/tgs266/dawn-go-common v0.0.0-20220414205650-d68d131b5cc0/go.mod h1:46t5ci6o7lM7G9XMJzd+oTjC6w8/fo52U/9WgOe9mZQ=
-github.com/tgs266/dawn-go-common v0.0.0-20220414213532-b959d8607a59 h1:qIB2+/+IMMAWBwIJttt1OjlHMT/OLsEDu1U15JsefUg=
-github.com/tgs266/dawn-go-common v0.0.0-20220414213532-b959d8607a59/go.mod h1:46t5ci6o7lM7G9XMJzd+oTjC6w8/fo52U/9WgOe9mZQ=
-github.com/tgs266/dawn-go-common v0.0.0-20220414230642-98e800169140 h1:lRKTXzp4GePWFfPCLiXj2yfMrI+4K46TLY3oBTqJ1+8=
-github.com/tgs266/dawn-go-common v0.0.0-20220414230642-98e800169140/go.mod h1:46t5ci6o7lM7G9XMJzd+oTjC6w8/fo52U/9WgOe9mZQ=
-github.com/tgs266/dawn-go-common v0.0.0-20220414233006-08e43c20ccd6 h1:Zofu4gippMxEDZtkZqTgiNYYTu5DoamRR+jCj2BtQDA=
-github.com/tgs266/dawn-go-common v0.0.0-20220414233006-08e43c20ccd6/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
-github.com/tgs266/dawn-go-common v0.0.0-20220414233718-90a7ab8c47be h1:nHesGTt/NORQvhekhE0RUNJGqaR6srliWnJTdaIuw7Y=
-github.com/tgs266/dawn-go-common v0.0.0-20220414233718-90a7ab8c47be/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
-github.com/tgs266/dawn-go-common v0.0.0-20220414233924-301805a56f57 h1:wDkZrfvnw4r8MZ52AV/ReWpmUSa5fI8k+EETXWc+BIo=
-github.com/tgs266/dawn-go-common v0.0.0-20220414233924-301805a56f57/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
-github.com/tgs266/dawn-go-common v0.0.0-20220414234346-999ebc780b7b h1:9Ktb0qaVdkevHD4/rX7v74O8UygVX/Qc3rRiw13V5O8=
-github.com/tgs266/dawn-go-common v0.0.0-20220414234346-999ebc780b7b/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
-github.com/tgs266/dawn-go-common v0.0.0-20220919221704-e7da7eb4e31c h1:uBFmzzYGCOntfuvuJ5HgIDWPXy+48rtaTAmtGa+fmn0=
-github.com/tgs266/dawn-go-common v0.0.0-20220919221704-e7da7eb4e31c/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
-github.com/tgs266/dawn-go-common v0.0.0-20220922170658-190a1dc0ad59 h1:ztJSxH4FQnsweXoKtGaIOVueRDJif3+0xgtP/dMkwZw=
-github.com/tgs266/dawn-go-common v0.0.0-20220922170658-190a1dc0ad59/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
-github.com/tgs266/dawn-go-common v0.0.0-20220926191603-2c965e0de9fe h1:/0Z1TPUNVya+vsHXTrTBXjceB2cX+UEtW5O8Ioz8WRA=
-github.com/tgs266/dawn-go-common v0.0.0-20220926191603-2c965e0de9fe/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
-github.com/tgs266/dawn-go-common v0.0.0-20220926192558-8982b12aa514 h1:iQKT+vUc7U5CYj1DGfOy09W4AmhYNe0smtm1eeV5nhw=
-github.com/tgs266/dawn-go-common v0.0.0-20220926192558-8982b12aa514/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
-github.com/tgs266/dawn-go-common v0.0.0-20220926193741-599d4be5ecec h1:jvkc3mNjVIPO3ByfF5hjthrsP0g6ToL5FIxBf43MtBw=
-github.com/tgs266/dawn-go-common v0.0.0-20220926193741-599d4be5ecec/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
-github.com/tgs266/dawn-go-common v0.0.0-20220926200401-63ec7d7119a0 h1:omtLZNoFqJf8p5IorD6MMDpG8qwCDtjVEkXdXCu2zj0=
-github.com/tgs266/dawn-go-common v0.0.0-20220926200401-63ec7d7119a0/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
-github.com/tgs266/dawn-go-common v0.0.0-20221004165044-41b33c8b0598 h1:lHi3/3mME+COppqH7Txv5TQyYiyDfqVjMpahr2/IsrU=
-github.com/tgs266/dawn-go-common v0.0.0-20221004165044-41b33c8b0598/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
-github.com/tgs266/dawn-go-common v0.0.0-20221006204703-9f561ecb3e3e h1:UI+x2T4bUy5qpPAvGkkWkVVMewhUp0ovIGgVGql9pr8=
-github.com/tgs266/dawn-go-common v0.0.0-20221006204703-9f561ecb3e3e/go.mod h1:XUnuQ0jNkFoFhUY/835EMgZWvPx/ZJUhn3VOds9y3Fg=
 github.com/tgs266/dawn-go-common v0.0.0-20221006213126-74b2f745df9d h1:Pv2veb0lWP/NztEl/XJolTTKnFNLj3f4v8mH+flpTaM=
 github.com/tgs266/dawn-go-common v0.0.0-20221006213126-74b2f745df9d/go.mod h1:m4HIiq261jgftLlj1B1qoHpHdODhs2BipNCsau6DG5I=
 github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
@@ -627,7 +592,6 @@ github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyC
 github.com/valyala/fasthttp v1.17.0/go.mod h1:jjraHZVbKOXftJfsOYoAjaeygpj5hr8ermTRJNroD7A=
 github.com/valyala/fasthttp v1.18.0/go.mod h1:jjraHZVbKOXftJfsOYoAjaeygpj5hr8ermTRJNroD7A=
 github.com/valyala/fasthttp v1.26.0/go.mod h1:cmWIqlu99AO/RKcp1HWaViTqc57FswJOfYYdPJBl8BA=
-github.com/valyala/fasthttp v1.31.0 h1:lrauRLII19afgCs2fnWRJ4M5IkV0lo2FqA61uGkNBfE=
 github.com/valyala/fasthttp v1.31.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus=
 github.com/valyala/fasthttp v1.34.0 h1:d3AAQJ2DRcxJYHm7OXNXtXt2as1vMDfxeIcFvhmGGm4=
 github.com/valyala/fasthttp v1.34.0/go.mod h1:epZA5N+7pY6ZaEKRmstzOuYJx9HI8DI1oaCGZpdH4h0=
@@ -692,7 +656,6 @@ golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPh
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
 golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
-golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 h1:7I4JAnoQBe7ZtJcBaYHi5UtiO8tQHbUSXxL+pnGRANg=
 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
 golang.org/x/crypto v0.0.0-20220214200702-86341886e292 h1:f+lwQ+GtmgoY+A2YaQxlSOnDjXcQ7ZRLWOHbC6HtRqE=
 golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
@@ -795,7 +758,6 @@ golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1
 golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f h1:OfiFi4JbukWwe3lzw+xunroH1mnC1e2Gy5cxNJApiSY=
 golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc=
@@ -903,7 +865,6 @@ golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBc
 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211019181941-9d821ace8654 h1:id054HUawV2/6IGm2IV8KZQjqtwAOo2CYlOToYqa0d0=
 golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9 h1:nhht2DYV/Sn3qOayu8lM+cU1ii9sTLUeBQwQQfUHtrs=