diff --git a/.gitignore b/.gitignore
index 04a1022..d305449 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,4 +13,3 @@ Cargo.lock
# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb
-test/
diff --git a/test/catalog.log b/test/catalog.log
new file mode 100644
index 0000000..e69de29
diff --git a/test/catalog1 b/test/catalog1
new file mode 100755
index 0000000..3abb297
Binary files /dev/null and b/test/catalog1 differ
diff --git a/test/plot_get_namespace.html b/test/plot_get_namespace.html
new file mode 100644
index 0000000..b2a56ed
--- /dev/null
+++ b/test/plot_get_namespace.html
@@ -0,0 +1,672 @@
+
+
+
+ Vegeta Plot
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/plot_get_table.html b/test/plot_get_table.html
new file mode 100644
index 0000000..fdfe7f7
--- /dev/null
+++ b/test/plot_get_table.html
@@ -0,0 +1,672 @@
+
+
+
+ Vegeta Plot
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/plot_list_namespace.html b/test/plot_list_namespace.html
new file mode 100644
index 0000000..0751e59
--- /dev/null
+++ b/test/plot_list_namespace.html
@@ -0,0 +1,672 @@
+
+
+
+ Vegeta Plot
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/plot_list_table.html b/test/plot_list_table.html
new file mode 100644
index 0000000..64a18a3
--- /dev/null
+++ b/test/plot_list_table.html
@@ -0,0 +1,672 @@
+
+
+
+ Vegeta Plot
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/plot_random.html b/test/plot_random.html
new file mode 100644
index 0000000..46d6ef7
--- /dev/null
+++ b/test/plot_random.html
@@ -0,0 +1,3172 @@
+
+
+
+ Vegeta Plot
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/requests_get_table.txt b/test/requests_get_table.txt
new file mode 100644
index 0000000..068b19f
--- /dev/null
+++ b/test/requests_get_table.txt
@@ -0,0 +1,100 @@
+GET http://localhost:3000/namespaces/xsrwkkdtedndffnwpqrnnrhdnkipqcyo/tables/ayjfifidfonavkxsdecjvmemlsdtawgs
+GET http://localhost:3000/namespaces/llvrllurpiqksodnblupzyhigbhnvhhe/tables/zvomfgycragtmqcufvynpufpqgzmsmlp
+GET http://localhost:3000/namespaces/yqtfraefokejhzrlzipgqnvknkyizyzw/tables/fjoieiyyjykeyjjwifrjadosvbawdoyx
+GET http://localhost:3000/namespaces/vtbnwdsnfrcjwjhdduftuytmhkpwutzi/tables/qobofejbcjcfdcccsebnnyqtiftnzqzg
+GET http://localhost:3000/namespaces/qmrxpkccjsrdcepxtpayyxqtwxeybsqy/tables/yvijckuxagzihtejtodxjatbmzctihtr
+GET http://localhost:3000/namespaces/ticdbcjitduubulocumckbxjnbnqbotk/tables/opicjjkwstauzjlzwbnnbpdbavunaqcg
+GET http://localhost:3000/namespaces/txsqsjnevgurlcqdgukdvjohnucxxuba/tables/hcjauaacqhktzqluzpeqjsqusekpjibh
+GET http://localhost:3000/namespaces/mmruuaihtfxpmmnpzbpgigixjmmzxmgd/tables/wuowjsmiqzxpohzoadjcxtymzadktogu
+GET http://localhost:3000/namespaces/pzbzsjgdmziqfhluuwztkbiiywlbhzmf/tables/mmsiffejpocqdkdzyrxplepkesxibhiw
+GET http://localhost:3000/namespaces/txotlhsvrtxgwssinvurgxenixtkbjks/tables/pqjyibtlmfnmfvlprrhrishrlbcmhyzz
+GET http://localhost:3000/namespaces/nmghynmwzjvocfbzihrcggredlhqwxnm/tables/ojryadfrsavcterdvsmjxzzzdkhqvpwt
+GET http://localhost:3000/namespaces/tosmguvfcmhtrhoraubsewlgjketykil/tables/wjyfqloulhaeleduxmgbnhpwpfxxjmjx
+GET http://localhost:3000/namespaces/pzbzsjgdmziqfhluuwztkbiiywlbhzmf/tables/stvzewdazcjtugulbmtvrvhmlqulzcjn
+GET http://localhost:3000/namespaces/llvrllurpiqksodnblupzyhigbhnvhhe/tables/txecbkcleqggfkcprtktmqquhnfarhqg
+GET http://localhost:3000/namespaces/pzbzsjgdmziqfhluuwztkbiiywlbhzmf/tables/lpyjttjvrsuirqqkdwkmwwktbtldtbvk
+GET http://localhost:3000/namespaces/ltotaczhcmsnzwflfgavdgoiajjwzfzj/tables/ideitpiozgurzdtiygmvbhitnuflmxbv
+GET http://localhost:3000/namespaces/kkdzawbfrpczyzyqfulnfnhkbdlakimn/tables/dvoitsqqcrtquklupkjhotxmsiuutfrr
+GET http://localhost:3000/namespaces/rczfzhxjcaaonirsdejugpyzfatsynvl/tables/dpzwrrlgvckgwnbvburgbghnaeumwljb
+GET http://localhost:3000/namespaces/qmrxpkccjsrdcepxtpayyxqtwxeybsqy/tables/vdjlxhvywqfbvmdhbkpgzevosdfhwqsp
+GET http://localhost:3000/namespaces/uimlcyxwzxasnxswnbyojyksuwvvthmq/tables/cganyazfmcafxjbegrhfhiryeycjeyok
+GET http://localhost:3000/namespaces/kkdzawbfrpczyzyqfulnfnhkbdlakimn/tables/vtjthddcvprvxaupnhuvtgrbdjthajcq
+GET http://localhost:3000/namespaces/pzbzsjgdmziqfhluuwztkbiiywlbhzmf/tables/oxhemxaixrkupglndarsatqmkqxnmfij
+GET http://localhost:3000/namespaces/sneawvxohbhfcgmcdkekiajaceaazzwu/tables/ijirxtlrovnglrcshsppvdykkjfdwxsi
+GET http://localhost:3000/namespaces/pidgddrrymnhkxtzbecablronlwibebz/tables/jszwjurusjobdriifzdomdlnuwybvusq
+GET http://localhost:3000/namespaces/iozswcevctjbflkzyxvcwmtpzqiaxpjr/tables/wvfhfbrjtsigtcyloyrcyovblrnadoje
+GET http://localhost:3000/namespaces/mmruuaihtfxpmmnpzbpgigixjmmzxmgd/tables/dsnqgextlvzgreeenocbvoulxgyxuzdv
+GET http://localhost:3000/namespaces/luidovfhypmcusbiiddcdhwmmlwmzfez/tables/xtuppgrgnphamqotiunqdpilslfbtqxt
+GET http://localhost:3000/namespaces/fgatyqcqnpldrmiqiwumperninxswjcy/tables/hypqrftwpogwxztbhqlcvvdygdhqgoxi
+GET http://localhost:3000/namespaces/sneawvxohbhfcgmcdkekiajaceaazzwu/tables/yoankohdtszyazbewwlmmxqahxxzddjx
+GET http://localhost:3000/namespaces/akifuvnpturwimqarllgmqwmdvrvyamx/tables/jxfzmpbjkpibiknbdyeggjizbqipygyy
+GET http://localhost:3000/namespaces/ltotaczhcmsnzwflfgavdgoiajjwzfzj/tables/zsdrklxynzgguuzirctygfzpklxikknl
+GET http://localhost:3000/namespaces/vtbnwdsnfrcjwjhdduftuytmhkpwutzi/tables/avjhpmuinpkzvcykxqdriwiffgmhguig
+GET http://localhost:3000/namespaces/uimlcyxwzxasnxswnbyojyksuwvvthmq/tables/siycvkldrslsuzrhccnyxxuepclgella
+GET http://localhost:3000/namespaces/dsvvjcfnjhrtmwcmrhpgnohvqgfcmiyt/tables/mbzaszgqrgabmriitbqwziufttbbquux
+GET http://localhost:3000/namespaces/pddckdgnrlzrdfabkeeaovmlgsnmslgv/tables/xppofauhsarfmkisgtlfkcxcarxbgkob
+GET http://localhost:3000/namespaces/mtzvrwlrremiynspmsfjlmhashuxwetg/tables/jfjvxzpdmhjpqfgpzqljvrqydwccvyka
+GET http://localhost:3000/namespaces/mdzmjuotjpauvdkgjoyggymrknoilxww/tables/lkqetgrwrmtlzrgzifpoljrtgoberlhv
+GET http://localhost:3000/namespaces/reqbuzzzgtqrjknmwydzmeioxtoisqhz/tables/rofrkeundkmtahutnrfojcyxoqeqkmwg
+GET http://localhost:3000/namespaces/brckcasiudxsqqcpechoijpwsumpzzdu/tables/cljpsbyhodekofopzyawlxqulboskasr
+GET http://localhost:3000/namespaces/niasjawejacthpcxrpsihdkjwpqmgdus/tables/qzkdlflgmicqovhlebkclsabuoviesub
+GET http://localhost:3000/namespaces/zpdbzlpewxtfrktsdhxjackrdvzhhsyt/tables/ofcixuuhcsilcyneckodrlaezrxkpiey
+GET http://localhost:3000/namespaces/xsrwkkdtedndffnwpqrnnrhdnkipqcyo/tables/edubnizwkdmaewruqgfdllqoaocrrhxx
+GET http://localhost:3000/namespaces/gyopejtpgicdzvncahcrmfnoazetobeb/tables/jzzbhszgctrxxszrdejtqvvrdctynjeh
+GET http://localhost:3000/namespaces/hmjuzvzlppisxbosvxnvoxtanjrnmupq/tables/mitjcqmczimqcpkbxjpjdcgfqodapamo
+GET http://localhost:3000/namespaces/frfpzegevsgqanpniuzfqlqufsboztqr/tables/hfesctomllnzwyhjnvraopgtwpidjxqh
+GET http://localhost:3000/namespaces/qvcvgfgdsoyywrowljesxrlqftndhhge/tables/fbcuzfculvivuxycytlkqlcnglasursn
+GET http://localhost:3000/namespaces/dsvvjcfnjhrtmwcmrhpgnohvqgfcmiyt/tables/aeyscnxhmyavdpecuixywhrzzrhvpded
+GET http://localhost:3000/namespaces/wbwdvmshbjvlsvpnyobaommonixkmnxx/tables/dwdppnaqwosqrenzxiwtfzqabgocivno
+GET http://localhost:3000/namespaces/iprsiopdisxqlueuccdehkorhvnmjgae/tables/zzupikbdkkxmgowtbixanacjequpntye
+GET http://localhost:3000/namespaces/vnmdvqvwvndjczlmpufghodxbfxrxwja/tables/flnyqjznozeuvogcwsafyrsxgvodqxer
+GET http://localhost:3000/namespaces/nxpcjigtjbqyzagxzuzomrzrszbthpgg/tables/lzfmwqgjqvxyvathcnliprulibfnjgvg
+GET http://localhost:3000/namespaces/ipuredhiiaimweilvocmgytdmsbcfeiq/tables/rakhulorzcxhdmnmvcoxwbapqcvxefse
+GET http://localhost:3000/namespaces/mixvambjcivlgetbonijykxzlszhgyna/tables/iurhgfivtykbvtfjbixjmqjzovfgpnbp
+GET http://localhost:3000/namespaces/ejralquhjhcuhchlngcziennrfjykoxg/tables/vbflsvrndezffgtluhbakusfidaezpma
+GET http://localhost:3000/namespaces/dhladaejyzkoxybsgommvqwdcxtxytyf/tables/plpehiqssdnhxldxozogznhsdmsbsstq
+GET http://localhost:3000/namespaces/kwjnvyvhxoskjjqaiqxaxyspcebnjcjb/tables/sabntcbfgyqicazsuefpgdgcfmnkkcnw
+GET http://localhost:3000/namespaces/sneawvxohbhfcgmcdkekiajaceaazzwu/tables/ycfeufpvmalejymhmlplbpropjjjhlzq
+GET http://localhost:3000/namespaces/luidovfhypmcusbiiddcdhwmmlwmzfez/tables/fzebrugbpfrwzhfhzmpcvkyeykysrlos
+GET http://localhost:3000/namespaces/vtbnwdsnfrcjwjhdduftuytmhkpwutzi/tables/hixhlzlseotpqqydjuvsqwsejgkcdiff
+GET http://localhost:3000/namespaces/rzfkhkviwbjwkaohqjvtmqfncroaqfup/tables/syzubasdciypkapijfrzqritnnmplyzh
+GET http://localhost:3000/namespaces/goqkhkyonmmrsbsrshxkbacoschwqbbl/tables/aipgjkapziywmgxldsxzggjlhcwzaksc
+GET http://localhost:3000/namespaces/akifuvnpturwimqarllgmqwmdvrvyamx/tables/okesxirwexgctsjhyehuhjkxkcyytmjm
+GET http://localhost:3000/namespaces/fkvxmlpyjpzjqaibijporlqxewctkhkf/tables/rwbodplpfvvbfrpqzqznkrmslslelohn
+GET http://localhost:3000/namespaces/zpdbzlpewxtfrktsdhxjackrdvzhhsyt/tables/hwlwxcgoysvjewentikuttipgjzoiwde
+GET http://localhost:3000/namespaces/txsqsjnevgurlcqdgukdvjohnucxxuba/tables/cjtbnmxmqxxbkdqilervxmtgfazqdqhr
+GET http://localhost:3000/namespaces/tkhfdwzgqwizhcicvpiofjmkrrlhjwdg/tables/mpczgpqsuasxayuhlzkbegiippptbivy
+GET http://localhost:3000/namespaces/vowzrvntabvaogizuldxhahqtqyvzhjq/tables/kufuhckprbzgijeowgriolksxayyuxmf
+GET http://localhost:3000/namespaces/tosmguvfcmhtrhoraubsewlgjketykil/tables/olmwepklddegietlwdnxiapmxtcoqehf
+GET http://localhost:3000/namespaces/mmruuaihtfxpmmnpzbpgigixjmmzxmgd/tables/gsqkytsvfturquodelryyqqjrggwpqvl
+GET http://localhost:3000/namespaces/yatzjqrzciwslxtvmupqlhhwrxifbikr/tables/dfbrhmbgcxgbwupgbvehcdxuoahpjxwt
+GET http://localhost:3000/namespaces/sfecgakydeixlzfgaojcmtbjaqcbjngx/tables/mhbtpglsmlfhsdvslqecqngjvxnzybxl
+GET http://localhost:3000/namespaces/ejralquhjhcuhchlngcziennrfjykoxg/tables/xwuoktyldxfidruvmyaictestqgneoww
+GET http://localhost:3000/namespaces/xkdszczlxwboeyafpbdtbudtdzlafapm/tables/hdmyqpihtedtflxlnndyksxlfcclyefd
+GET http://localhost:3000/namespaces/rkblenwccpkwppeceyyrmebmpjxvihfw/tables/jovobzmkocolvkpdivfwqbzvtwqmuuht
+GET http://localhost:3000/namespaces/vtbnwdsnfrcjwjhdduftuytmhkpwutzi/tables/yjalqfoiokfrpezhijfdkhmttsbbwasz
+GET http://localhost:3000/namespaces/mixvambjcivlgetbonijykxzlszhgyna/tables/whzcsunmmybmwwacmtunpmdxqniimhhp
+GET http://localhost:3000/namespaces/uimlcyxwzxasnxswnbyojyksuwvvthmq/tables/pjeedwbiyxkzkcnyehbmbmsdrmnmlnek
+GET http://localhost:3000/namespaces/ticdbcjitduubulocumckbxjnbnqbotk/tables/ytwxgnopjgdnydxydkvlguskbqeqcmit
+GET http://localhost:3000/namespaces/jniiwdroytjhtndjtaysloncbfqwuxvk/tables/qhwkqzylmiiqaggyzpipkjuolygwgepj
+GET http://localhost:3000/namespaces/cnvpnljgyxzpbeifkmrtwwqozsyuxeel/tables/jidlwwlpbimjtsvmlsxwnvdeitamzmxa
+GET http://localhost:3000/namespaces/llvrllurpiqksodnblupzyhigbhnvhhe/tables/lsjkpyafktddbypfmxrqawsybfxvivlv
+GET http://localhost:3000/namespaces/crgcexexntrrmxordvlwepijctuvibvq/tables/leudckljdcymgopubxudfwowowtajthh
+GET http://localhost:3000/namespaces/goajiiyhvjstutcpscukchuigdkkhxeh/tables/orhbbxxbyqtvmczlavdmjjhyhwquyxwk
+GET http://localhost:3000/namespaces/yatzjqrzciwslxtvmupqlhhwrxifbikr/tables/lbuarykhrvbuqwarcffykwkufqqrrhfc
+GET http://localhost:3000/namespaces/eaakztsljxsjkgsxdtwblhyswhtqtuzr/tables/mcibmoiravibypfdcxmssgiwlojazoka
+GET http://localhost:3000/namespaces/ipuredhiiaimweilvocmgytdmsbcfeiq/tables/qrdmoaoxupohzbdqrdpdtzoeacpyzfqb
+GET http://localhost:3000/namespaces/goajiiyhvjstutcpscukchuigdkkhxeh/tables/tiiycirtvtzndwknlvtrqhudgxlighab
+GET http://localhost:3000/namespaces/uimlcyxwzxasnxswnbyojyksuwvvthmq/tables/dirxwiyjcwkyinituysgblrjgaagphwg
+GET http://localhost:3000/namespaces/zglsfjjzwxzbldkyxpafxmkngvhjtxzv/tables/pwykksjjktulywgssyvrurgfjaqjprqg
+GET http://localhost:3000/namespaces/uhnfqhwunstirrdlkbakdouldhgtxyyj/tables/waeykktmnwbszmdnuifhcfayawdbqlud
+GET http://localhost:3000/namespaces/rrmkogsdaptfqkreaoyxvtdtohuaplyr/tables/lulnzvwfdpgddettgbwparldeshzuhbz
+GET http://localhost:3000/namespaces/qkfjjparsfbljfkeualzdfxisivcczkx/tables/rwseqgbpmnavzbwgitzzfuocmpbynovp
+GET http://localhost:3000/namespaces/qrovcvapqzinqajkgemwsfekomvrdfym/tables/mxrxpjqncxfwfgiyacellcskviivvghj
+GET http://localhost:3000/namespaces/frfpzegevsgqanpniuzfqlqufsboztqr/tables/smcdskypdrsykbztpwehxzjuvfkverbj
+GET http://localhost:3000/namespaces/jkqwwompqfbwybqcdgqedzazzvlwxfmb/tables/hoovgkgypwptbhxwqputnlzblojhrqyj
+GET http://localhost:3000/namespaces/qlkjcwttzunaoutlehjhuzefrbgiptbo/tables/fkhiuhmcyheicmfmfsiaexbfgntgdzlm
+GET http://localhost:3000/namespaces/frfpzegevsgqanpniuzfqlqufsboztqr/tables/zndfjawdjumbxhqgiokiziqprepfyzuj
+GET http://localhost:3000/namespaces/mixvambjcivlgetbonijykxzlszhgyna/tables/pkhyffknevopwrxzxcsfolcovaxhwoqz
+GET http://localhost:3000/namespaces/qfstqjqbxmhpndxkyjntrwvnrisqdfjw/tables/mwjrnblccvidpkijiciispzrdcvpeomo
+GET http://localhost:3000/namespaces/gyopejtpgicdzvncahcrmfnoazetobeb/tables/krlmwktntgoccdvapcyvmngtazegqfkx
diff --git a/test/results_get_namespace.bin b/test/results_get_namespace.bin
new file mode 100644
index 0000000..d928b5d
Binary files /dev/null and b/test/results_get_namespace.bin differ
diff --git a/test/results_get_table.bin b/test/results_get_table.bin
new file mode 100644
index 0000000..8f6b0c2
Binary files /dev/null and b/test/results_get_table.bin differ
diff --git a/test/results_list_namespace.bin b/test/results_list_namespace.bin
new file mode 100644
index 0000000..af5a09b
Binary files /dev/null and b/test/results_list_namespace.bin differ
diff --git a/test/results_list_table.bin b/test/results_list_table.bin
new file mode 100644
index 0000000..68f63d4
Binary files /dev/null and b/test/results_list_table.bin differ
diff --git a/test/results_random.bin b/test/results_random.bin
new file mode 100644
index 0000000..2b91851
Binary files /dev/null and b/test/results_random.bin differ
diff --git a/test/vegeta_get_namespace.log b/test/vegeta_get_namespace.log
new file mode 100644
index 0000000..11ab5bf
--- /dev/null
+++ b/test/vegeta_get_namespace.log
@@ -0,0 +1,8 @@
+Requests [total, rate, throughput] 500, 50.10, 50.10
+Duration [total, attack, wait] 9.98s, 9.98s, 131.791µs
+Latencies [min, mean, 50, 90, 95, 99, max] 91.2µs, 182.686µs, 193.146µs, 243.448µs, 259.725µs, 283.926µs, 1.1ms
+Bytes In [total, mean] 36000, 72.00
+Bytes Out [total, mean] 0, 0.00
+Success [ratio] 100.00%
+Status Codes [code:count] 200:500
+Error Set:
diff --git a/test/vegeta_get_table.log b/test/vegeta_get_table.log
new file mode 100644
index 0000000..57676a2
--- /dev/null
+++ b/test/vegeta_get_table.log
@@ -0,0 +1,8 @@
+Requests [total, rate, throughput] 500, 50.10, 50.10
+Duration [total, attack, wait] 9.98s, 9.98s, 190.712µs
+Latencies [min, mean, 50, 90, 95, 99, max] 91.439µs, 159.402µs, 140.688µs, 212.78µs, 225.184µs, 277.193µs, 967.288µs
+Bytes In [total, mean] 82000, 164.00
+Bytes Out [total, mean] 0, 0.00
+Success [ratio] 100.00%
+Status Codes [code:count] 200:500
+Error Set:
diff --git a/test/vegeta_list_namespace.log b/test/vegeta_list_namespace.log
new file mode 100644
index 0000000..6142d7c
--- /dev/null
+++ b/test/vegeta_list_namespace.log
@@ -0,0 +1,8 @@
+Requests [total, rate, throughput] 500, 50.10, 50.10
+Duration [total, attack, wait] 9.98s, 9.98s, 195.641µs
+Latencies [min, mean, 50, 90, 95, 99, max] 143.939µs, 188.989µs, 182.153µs, 218.674µs, 227.012µs, 272.435µs, 823.81µs
+Bytes In [total, mean] 1858000, 3716.00
+Bytes Out [total, mean] 0, 0.00
+Success [ratio] 100.00%
+Status Codes [code:count] 200:500
+Error Set:
diff --git a/test/vegeta_list_table.log b/test/vegeta_list_table.log
new file mode 100644
index 0000000..cfa69ce
--- /dev/null
+++ b/test/vegeta_list_table.log
@@ -0,0 +1,8 @@
+Requests [total, rate, throughput] 500, 50.10, 50.10
+Duration [total, attack, wait] 9.98s, 9.98s, 309.065µs
+Latencies [min, mean, 50, 90, 95, 99, max] 267.312µs, 334.559µs, 323.861µs, 373.501µs, 390.336µs, 578.332µs, 1.014ms
+Bytes In [total, mean] 4650500, 9301.00
+Bytes Out [total, mean] 0, 0.00
+Success [ratio] 100.00%
+Status Codes [code:count] 200:500
+Error Set:
diff --git a/test/vegeta_random.log b/test/vegeta_random.log
new file mode 100644
index 0000000..116783a
--- /dev/null
+++ b/test/vegeta_random.log
@@ -0,0 +1,8 @@
+Requests [total, rate, throughput] 3000, 50.02, 50.02
+Duration [total, attack, wait] 59.98s, 59.98s, 100.094µs
+Latencies [min, mean, 50, 90, 95, 99, max] 80.684µs, 129.312µs, 121.094µs, 175.896µs, 191.129µs, 225.548µs, 795.083µs
+Bytes In [total, mean] 492000, 164.00
+Bytes Out [total, mean] 0, 0.00
+Success [ratio] 100.00%
+Status Codes [code:count] 200:3000
+Error Set: