diff --git a/benchmark.svg b/benchmark.svg
index 5fa6e41..0575d7c 100644
--- a/benchmark.svg
+++ b/benchmark.svg
@@ -1,8 +1,8 @@
-Speed in Milliseconds (ms) 0 0 400 400 800 800 1200 1200 1600 1600 2000 2000 2400 2400 2800 2800 3200 3200 3600 3600 4000 4000 4400 4400 4800 4800 5200 5200 5600 5600 test_day10_part1_bench test_day10_part2_bench test_day11_part1_bench test_day11_part2_bench test_day12_part1_bench test_day12_part2_bench test_day13_part1_bench test_day13_part2_bench test_day14_part1_bench test_day14_part2_bench test_day15_part1_bench test_day15_part2_bench test_day16_part1_bench test_day16_part2_bench test_day1_part1_bench test_day1_part2_bench test_day2_part1_bench test_day2_part2_bench test_day3_part1_bench test_day3_part2_bench test_day4_part1_bench test_day4_part2_bench test_day5_part1_bench test_day5_part2_bench test_day6_part1_bench test_day6_part2_bench test_day7_part1_bench test_day7_part2_bench test_day8_part1_bench test_day8_part2_bench test_day9_part1_bench test_day9_part2_bench Min: 1.7544
-Q1-1.5IQR: 1.7544
-Q1: 1.7714
-Median: 1.8764
-Q3: 1.9160
-Q3+1.5IQR: 2.3135
-Max: 3.4460 23.978365384615387 358.84441115919554 Min: 1.6089
-Q1-1.5IQR: 1.6089
-Q1: 1.6197
-Median: 1.6248
-Q3: 1.6334
-Q3+1.5IQR: 1.6575
-Max: 1.8332 45.01201923076923 358.86250066505306 Min: 2.8827
-Q1-1.5IQR: 2.8827
-Q1: 2.9126
-Median: 3.0254
-Q3: 3.1369
-Q3+1.5IQR: 3.7505
-Max: 5.7047 66.04567307692308 358.770521343147 Min: 108.5865
-Q1-1.5IQR: 108.5865
-Q1: 109.3022
-Median: 113.6533
-Q3: 115.3329
-Q3+1.5IQR: 116.1650
-Max: 116.1650 87.07932692307692 352.1147259434306 Min: 45.8402
-Q1-1.5IQR: 46.5742
-Q1: 46.9157
-Median: 47.0720
-Q3: 47.4091
-Q3+1.5IQR: 48.3014
-Max: 53.1606 108.11298076923077 356.08836242839953 Min: 56.3262
-Q1-1.5IQR: 56.3262
-Q1: 57.7662
-Median: 58.7668
-Q3: 59.1933
-Q3+1.5IQR: 59.4802
-Max: 59.4802 129.1466346153846 355.41637277952395 Min: 0.9948
-Q1-1.5IQR: 0.9948
-Q1: 1.0247
-Median: 1.0806
-Q3: 1.0839
-Q3+1.5IQR: 1.1907
-Max: 1.8159 150.18028846153845 358.89617924445787 Min: 1.0705
-Q1-1.5IQR: 1.0705
-Q1: 1.1048
-Median: 1.1657
-Q3: 1.1699
-Q3+1.5IQR: 1.2749
-Max: 1.7385 171.21394230769232 358.89118113417686 Min: 0.8751
-Q1-1.5IQR: 0.8751
-Q1: 0.8981
-Median: 0.9576
-Q3: 0.9638
-Q3+1.5IQR: 1.0870
-Max: 1.6915 192.24759615384613 358.9033911260033 Min: 3099.8923
-Q1-1.5IQR: 3099.8923
-Q1: 3129.7075
-Median: 3155.7847
-Q3: 3208.0337
-Q3+1.5IQR: 3244.8431
-Max: 3244.8431 213.28125 166.36134369268706 Min: 23.6855
-Q1-1.5IQR: 23.6855
-Q1: 23.8462
-Median: 24.0430
-Q3: 24.3228
-Q3+1.5IQR: 26.1496
-Max: 26.1496 234.3149038461538 357.47739338259527 Min: 25.2203
-Q1-1.5IQR: 25.2203
-Q1: 25.3600
-Median: 25.4651
-Q3: 25.6717
-Q3+1.5IQR: 26.2423
-Max: 28.0884 255.34855769230768 357.40549585063246 Min: 24.7444
-Q1-1.5IQR: 24.7444
-Q1: 25.2438
-Median: 25.4550
-Q3: 25.6694
-Q3+1.5IQR: 27.0033
-Max: 27.0033 276.38221153846155 357.4035921948595 Min: 2100.8916
-Q1-1.5IQR: 2100.8916
-Q1: 2117.7113
-Median: 2123.6474
-Q3: 2159.3598
-Q3+1.5IQR: 2164.5789
-Max: 2164.5789 297.41586538461536 229.25600884161835 Min: 0.4130
-Q1-1.5IQR: 0.4130
-Q1: 0.4181
-Median: 0.4238
-Q3: 0.4296
-Q3+1.5IQR: 0.4472
-Max: 0.8621 318.4495192307692 358.9356146816357 Min: 0.4731
-Q1-1.5IQR: 0.4731
-Q1: 0.4801
-Median: 0.4865
-Q3: 0.5184
-Q3+1.5IQR: 0.5828
-Max: 0.6368 339.48317307692304 358.9306393843363 Min: 1.4501
-Q1-1.5IQR: 1.4501
-Q1: 1.4634
-Median: 1.4679
-Q3: 1.4733
-Q3+1.5IQR: 1.4887
-Max: 2.4188 360.5168269230769 358.8722405952631 Min: 3.6467
-Q1-1.5IQR: 3.6467
-Q1: 3.6597
-Median: 3.6692
-Q3: 3.6984
-Q3+1.5IQR: 3.7585
-Max: 3.9983 381.5504807692308 358.73738992265135 Min: 0.3960
-Q1-1.5IQR: 0.3960
-Q1: 0.3988
-Median: 0.4021
-Q3: 0.4062
-Q3+1.5IQR: 0.4183
-Max: 0.8243 402.5841346153846 358.93695759529 Min: 0.2742
-Q1-1.5IQR: 0.2742
-Q1: 0.2766
-Median: 0.2775
-Q3: 0.2847
-Q3+1.5IQR: 0.2968
-Max: 0.6157 423.61778846153845 358.9443941135674 Min: 159.6363
-Q1-1.5IQR: 159.6363
-Q1: 159.8076
-Median: 159.9573
-Q3: 161.5346
-Q3+1.5IQR: 161.9610
-Max: 161.9610 444.65144230769226 349.1979617929674 Min: 3.3065
-Q1-1.5IQR: 3.3065
-Q1: 3.3267
-Median: 3.3372
-Q3: 3.3515
-Q3+1.5IQR: 3.3902
-Max: 3.5622 465.68509615384613 358.7583117738957 Min: 2.3733
-Q1-1.5IQR: 2.3733
-Q1: 2.3871
-Median: 2.3975
-Q3: 2.4167
-Q3+1.5IQR: 2.4629
-Max: 2.6734 486.71875 358.8151560485716 Min: 6.4460
-Q1-1.5IQR: 6.4460
-Q1: 6.4873
-Median: 6.5166
-Q3: 6.5645
-Q3+1.5IQR: 6.6918
-Max: 7.1209 507.7524038461538 358.56381718063875 Min: 3.2569
-Q1-1.5IQR: 3.2569
-Q1: 3.2764
-Median: 3.2864
-Q3: 3.3110
-Q3+1.5IQR: 3.3634
-Max: 11.2470 528.7860576923078 358.76096232377313 Min: 5712.3993
-Q1-1.5IQR: 5712.3993
-Q1: 5726.4874
-Median: 5751.5593
-Q3: 5786.8302
-Q3+1.5IQR: 5787.2415
-Max: 5787.2415 549.8197115384617 9.172402858832811 Min: 14.2222
-Q1-1.5IQR: 14.2222
-Q1: 14.3218
-Median: 14.4915
-Q3: 14.6888
-Q3+1.5IQR: 15.4037
-Max: 15.7102 570.8533653846155 358.07227038621045 Min: 26.1840
-Q1-1.5IQR: 26.1840
-Q1: 26.3465
-Median: 26.4624
-Q3: 26.5438
-Q3+1.5IQR: 27.0320
-Max: 27.7091 591.8870192307693 357.34944563431964 Min: 0.3429
-Q1-1.5IQR: 0.3429
-Q1: 0.3500
-Median: 0.3521
-Q3: 0.3590
-Q3+1.5IQR: 0.3729
-Max: 0.4692 612.9206730769232 358.9399303146928 Min: 1.0653
-Q1-1.5IQR: 1.0653
-Q1: 1.0729
-Median: 1.0752
-Q3: 1.0828
-Q3+1.5IQR: 1.0978
-Max: 1.8040 633.954326923077 358.89594608325933 Min: 6.8840
-Q1-1.5IQR: 6.8840
-Q1: 6.9232
-Median: 6.9511
-Q3: 7.0109
-Q3+1.5IQR: 7.1544
-Max: 9.6768 654.9879807692308 358.5368503574036 Min: 848.5802
-Q1-1.5IQR: 848.5802
-Q1: 852.4879
-Median: 857.3876
-Q3: 875.7595
-Q3+1.5IQR: 924.6978
-Max: 924.6978 676.0216346153848 305.9552475406183 Speed in Milliseconds (ms) Trial Duration
\ No newline at end of file
+
Speed in Milliseconds (ms) 0 0 400 400 800 800 1200 1200 1600 1600 2000 2000 2400 2400 2800 2800 3200 3200 3600 3600 4000 4000 4400 4400 4800 4800 5200 5200 5600 5600 6000 6000 6400 6400 6800 6800 test_day10_part1_bench test_day10_part2_bench test_day11_part1_bench test_day11_part2_bench test_day12_part1_bench test_day12_part2_bench test_day13_part1_bench test_day13_part2_bench test_day14_part1_bench test_day14_part2_bench test_day15_part1_bench test_day15_part2_bench test_day16_part1_bench test_day16_part2_bench test_day17_part1_bench test_day17_part2_bench test_day1_part1_bench test_day1_part2_bench test_day2_part1_bench test_day2_part2_bench test_day3_part1_bench test_day3_part2_bench test_day4_part1_bench test_day4_part2_bench test_day5_part1_bench test_day5_part2_bench test_day6_part1_bench test_day6_part2_bench test_day7_part1_bench test_day7_part2_bench test_day8_part1_bench test_day8_part2_bench test_day9_part1_bench test_day9_part2_bench Min: 1.9153
+Q1-1.5IQR: 1.9153
+Q1: 1.9296
+Median: 1.9351
+Q3: 1.9433
+Q3+1.5IQR: 1.9643
+Max: 2.2311 23.35972850678733 358.8615003254502 Min: 1.7469
+Q1-1.5IQR: 1.7469
+Q1: 1.7653
+Median: 1.7726
+Q3: 1.7803
+Q3+1.5IQR: 1.8030
+Max: 2.8740 43.15610859728507 358.8699641270824 Min: 3.1239
+Q1-1.5IQR: 3.1239
+Q1: 3.1377
+Median: 3.1536
+Q3: 3.1660
+Q3+1.5IQR: 3.2090
+Max: 3.3824 62.952488687782804 358.7984826331427 Min: 118.2762
+Q1-1.5IQR: 118.2762
+Q1: 118.3125
+Median: 118.4347
+Q3: 118.6779
+Q3+1.5IQR: 119.0683
+Max: 119.0683 82.74886877828055 352.84037357483214 Min: 47.6499
+Q1-1.5IQR: 47.6499
+Q1: 48.1250
+Median: 48.4687
+Q3: 48.8496
+Q3+1.5IQR: 57.3579
+Max: 57.3579 102.54524886877829 356.37528572089974 Min: 60.1237
+Q1-1.5IQR: 60.1237
+Q1: 60.4550
+Median: 61.0566
+Q3: 61.6130
+Q3+1.5IQR: 66.0346
+Max: 66.0346 122.34162895927602 355.76776646880063 Min: 1.0707
+Q1-1.5IQR: 1.0707
+Q1: 1.0784
+Median: 1.0801
+Q3: 1.0851
+Q3+1.5IQR: 1.0952
+Max: 1.3862 142.13800904977376 358.905678903203 Min: 1.1287
+Q1-1.5IQR: 1.1287
+Q1: 1.1343
+Median: 1.1578
+Q3: 1.1635
+Q3+1.5IQR: 1.2087
+Max: 2.3592 161.9343891402715 358.9017176723323 Min: 0.9629
+Q1-1.5IQR: 0.9688
+Q1: 0.9761
+Median: 0.9815
+Q3: 0.9834
+Q3+1.5IQR: 0.9950
+Max: 1.0751 181.73076923076923 358.9108891357157 Min: 3222.1366
+Q1-1.5IQR: 3222.1366
+Q1: 3228.7227
+Median: 3234.6052
+Q3: 3268.1875
+Q3+1.5IQR: 3307.8310
+Max: 3307.8310 201.52714932126696 191.03926273386696 Min: 25.4737
+Q1-1.5IQR: 25.4737
+Q1: 25.6321
+Median: 25.6969
+Q3: 25.7644
+Q3+1.5IQR: 25.9702
+Max: 26.0012 221.3235294117647 357.63421193450375 Min: 27.5866
+Q1-1.5IQR: 27.5866
+Q1: 27.6584
+Median: 27.7928
+Q3: 27.8910
+Q3+1.5IQR: 28.2973
+Max: 28.9818 241.11990950226243 357.5238372481463 Min: 27.3025
+Q1-1.5IQR: 27.3025
+Q1: 28.6205
+Median: 29.4736
+Q3: 30.0492
+Q3+1.5IQR: 32.0842
+Max: 32.0842 260.9162895927602 357.4380873206426 Min: 2552.4500
+Q1-1.5IQR: 2552.4500
+Q1: 2557.9049
+Median: 2596.9659
+Q3: 2629.5479
+Q3+1.5IQR: 2645.8808
+Max: 2645.8808 280.71266968325796 224.89671593356425 Min: 0.0210
+Q1-1.5IQR: 0.0215
+Q1: 0.0219
+Median: 0.0221
+Q3: 0.0222
+Q3+1.5IQR: 0.0227
+Max: 0.1048 300.5090497737557 358.9603979746753 Min: 95.2331
+Q1-1.5IQR: 95.2331
+Q1: 96.0149
+Median: 97.7670
+Q3: 98.7995
+Q3+1.5IQR: 99.7671
+Max: 99.7671 320.3054298642534 353.92658498561076 Min: 0.4442
+Q1-1.5IQR: 0.4442
+Q1: 0.4514
+Median: 0.4566
+Q3: 0.4607
+Q3+1.5IQR: 0.4749
+Max: 0.5422 340.10180995475116 358.937913921147 Min: 0.5119
+Q1-1.5IQR: 0.5119
+Q1: 0.5224
+Median: 0.5267
+Q3: 0.5325
+Q3+1.5IQR: 0.5478
+Max: 1.0906 359.8981900452489 358.9342628508855 Min: 1.5528
+Q1-1.5IQR: 1.5528
+Q1: 1.5654
+Median: 1.5701
+Q3: 1.5756
+Q3+1.5IQR: 1.5911
+Max: 1.9586 379.69457013574663 358.88042502505385 Min: 3.9453
+Q1-1.5IQR: 3.9453
+Q1: 3.9641
+Median: 3.9710
+Q3: 3.9782
+Q3+1.5IQR: 4.0009
+Max: 4.8322 399.49095022624437 358.75646131906814 Min: 0.4421
+Q1-1.5IQR: 0.4421
+Q1: 0.4460
+Median: 0.4513
+Q3: 0.4542
+Q3+1.5IQR: 0.4667
+Max: 0.8356 419.2873303167421 358.9381982322421 Min: 0.2989
+Q1-1.5IQR: 0.2989
+Q1: 0.3077
+Median: 0.3086
+Q3: 0.3155
+Q3+1.5IQR: 0.3272
+Max: 0.4212 439.08371040723983 358.94545153414475 Min: 167.9040
+Q1-1.5IQR: 167.9040
+Q1: 169.0915
+Median: 170.7810
+Q3: 173.8306
+Q3+1.5IQR: 174.2240
+Max: 174.2240 458.88009049773757 350.1238999839179 Min: 3.5572
+Q1-1.5IQR: 3.5572
+Q1: 3.5773
+Median: 3.5873
+Q3: 3.5965
+Q3+1.5IQR: 3.6272
+Max: 4.7044 478.6764705882353 358.7762253701835 Min: 2.5871
+Q1-1.5IQR: 2.5923
+Q1: 2.6126
+Median: 2.6198
+Q3: 2.6282
+Q3+1.5IQR: 2.6538
+Max: 2.7986 498.4728506787331 358.82619366341066 Min: 6.8803
+Q1-1.5IQR: 6.8803
+Q1: 6.9198
+Median: 6.9369
+Q3: 6.9636
+Q3+1.5IQR: 7.0509
+Max: 7.8460 518.2692307692308 358.6026810284904 Min: 3.5095
+Q1-1.5IQR: 3.5095
+Q1: 3.5306
+Median: 3.5415
+Q3: 3.5540
+Q3+1.5IQR: 3.5926
+Max: 12.9646 538.0656108597285 358.7784699356722 Min: 6627.4091
+Q1-1.5IQR: 6627.4091
+Q1: 6673.4085
+Median: 6713.9609
+Q3: 6789.3331
+Q3+1.5IQR: 6815.7101
+Max: 6815.7101 557.8619909502262 11.790438041458287 Min: 15.3733
+Q1-1.5IQR: 15.3733
+Q1: 15.4195
+Median: 15.4612
+Q3: 15.5292
+Q3+1.5IQR: 15.7094
+Max: 15.7094 577.658371040724 358.1613190353294 Min: 28.6247
+Q1-1.5IQR: 28.6247
+Q1: 28.8502
+Median: 28.9552
+Q3: 29.1095
+Q3+1.5IQR: 29.2181
+Max: 29.2181 597.4547511312217 357.46671475013596 Min: 0.3711
+Q1-1.5IQR: 0.3711
+Q1: 0.3756
+Median: 0.3793
+Q3: 0.3854
+Q3+1.5IQR: 0.4003
+Max: 0.4667 617.2511312217194 358.9417981998237 Min: 1.1316
+Q1-1.5IQR: 1.1316
+Q1: 1.1414
+Median: 1.1523
+Q3: 1.1579
+Q3+1.5IQR: 1.1826
+Max: 1.7770 637.0475113122171 358.90199904557153 Min: 7.8455
+Q1-1.5IQR: 7.8455
+Q1: 7.8747
+Median: 7.8925
+Q3: 7.9234
+Q3+1.5IQR: 7.9983
+Max: 8.1667 656.8438914027149 358.5532900083783 Min: 924.4273
+Q1-1.5IQR: 924.4273
+Q1: 924.5491
+Median: 925.3056
+Q3: 926.8149
+Q3+1.5IQR: 930.7256
+Max: 930.7256 676.6402714932127 311.1315724205209 Speed in Milliseconds (ms) Trial Duration
\ No newline at end of file