diff --git a/benchmark.svg b/benchmark.svg
index 808a6743..5fa6e411 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 6000 6000 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_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.9108
-Q1-1.5IQR: 1.9201
-Q1: 1.9348
-Median: 1.9398
-Q3: 1.9452
-Q3+1.5IQR: 1.9621
-Max: 2.0981 24.679487179487182 358.84977581360965 Min: 1.7635
-Q1-1.5IQR: 1.7635
-Q1: 1.7784
-Median: 1.7832
-Q3: 1.7887
-Q3+1.5IQR: 1.8071
-Max: 1.9555 47.11538461538461 358.85877178822597 Min: 3.1100
-Q1-1.5IQR: 3.1100
-Q1: 3.1227
-Median: 3.1287
-Q3: 3.1350
-Q3+1.5IQR: 3.1546
-Max: 3.6771 69.55128205128206 358.78124659313164 Min: 115.5986
-Q1-1.5IQR: 115.5986
-Q1: 115.6286
-Median: 115.6732
-Q3: 115.8889
-Q3+1.5IQR: 116.1983
-Max: 116.1983 91.9871794871795 352.29184595291474 Min: 46.9436
-Q1-1.5IQR: 46.9436
-Q1: 47.1923
-Median: 47.3475
-Q3: 47.5253
-Q3+1.5IQR: 48.8507
-Max: 54.9985 114.42307692307693 356.221498428522 Min: 58.5893
-Q1-1.5IQR: 58.5893
-Q1: 58.8122
-Median: 58.9325
-Q3: 59.1930
-Q3+1.5IQR: 59.8594
-Max: 60.3963 136.85897435897436 355.5588108045616 Min: 1.0644
-Q1-1.5IQR: 1.0644
-Q1: 1.0719
-Median: 1.0736
-Q3: 1.0783
-Q3+1.5IQR: 1.0882
-Max: 1.1456 159.2948717948718 358.8996040548918 Min: 1.1527
-Q1-1.5IQR: 1.1527
-Q1: 1.1617
-Median: 1.1641
-Q3: 1.1697
-Q3+1.5IQR: 1.1823
-Max: 1.6478 181.73076923076923 358.8943737839132 Min: 0.9496
-Q1-1.5IQR: 0.9554
-Q1: 0.9604
-Median: 0.9622
-Q3: 0.9639
-Q3+1.5IQR: 0.9696
-Max: 1.0592 204.16666666666666 358.90611206294847 Min: 3227.5334
-Q1-1.5IQR: 3227.5334
-Q1: 3230.8405
-Median: 3234.1207
-Q3: 3267.7979
-Q3+1.5IQR: 3367.2505
-Max: 3367.2505 226.6025641025641 170.8751500618315 Min: 25.7857
-Q1-1.5IQR: 26.0250
-Q1: 26.1309
-Median: 26.1918
-Q3: 26.3238
-Q3+1.5IQR: 26.7488
-Max: 26.7488 249.03846153846152 357.44763316004685 Min: 27.5992
-Q1-1.5IQR: 27.6889
-Q1: 27.7553
-Median: 27.8052
-Q3: 27.8434
-Q3+1.5IQR: 28.7739
-Max: 28.7739 271.474358974359 357.350333407262 Min: 0.4462
-Q1-1.5IQR: 0.4462
-Q1: 0.4553
-Median: 0.4602
-Q3: 0.4653
-Q3+1.5IQR: 0.4812
-Max: 0.6214 293.91025641025647 358.93494889906185 Min: 0.5265
-Q1-1.5IQR: 0.5265
-Q1: 0.5318
-Median: 0.5384
-Q3: 0.5413
-Q3+1.5IQR: 0.5557
-Max: 0.6560 316.34615384615387 358.9305098387097 Min: 1.5593
-Q1-1.5IQR: 1.5593
-Q1: 1.5701
-Median: 1.5748
-Q3: 1.5799
-Q3+1.5IQR: 1.5968
-Max: 2.3554 338.7820512820513 358.8707549446688 Min: 4.0031
-Q1-1.5IQR: 4.0031
-Q1: 4.0218
-Median: 4.0288
-Q3: 4.0408
-Q3+1.5IQR: 4.0712
-Max: 4.9682 361.21794871794873 358.7292386376516 Min: 0.4298
-Q1-1.5IQR: 0.4298
-Q1: 0.4327
-Median: 0.4364
-Q3: 0.4407
-Q3+1.5IQR: 0.4529
-Max: 0.8513 383.6538461538462 358.93628242257375 Min: 0.2971
-Q1-1.5IQR: 0.2971
-Q1: 0.2996
-Median: 0.3002
-Q3: 0.3076
-Q3+1.5IQR: 0.3197
-Max: 0.5557 406.08974358974365 358.9439794352894 Min: 171.6303
-Q1-1.5IQR: 171.6303
-Q1: 171.9171
-Median: 172.0510
-Q3: 172.3442
-Q3+1.5IQR: 172.7347
-Max: 172.7347 428.52564102564105 349.0468993816875 Min: 3.5835
-Q1-1.5IQR: 3.5903
-Q1: 3.6076
-Median: 3.6144
-Q3: 3.6221
-Q3+1.5IQR: 3.6450
-Max: 4.3986 450.9615384615385 358.7532719051996 Min: 2.6034
-Q1-1.5IQR: 2.6034
-Q1: 2.6218
-Median: 2.6282
-Q3: 2.6400
-Q3+1.5IQR: 2.6678
-Max: 2.8270 473.3974358974359 358.8099259105505 Min: 7.0784
-Q1-1.5IQR: 7.0784
-Q1: 7.1227
-Median: 7.1543
-Q3: 7.1753
-Q3+1.5IQR: 7.2687
-Max: 7.6647 495.83333333333337 358.5491437568927 Min: 3.6034
-Q1-1.5IQR: 3.6034
-Q1: 3.6592
-Median: 3.6795
-Q3: 3.7127
-Q3+1.5IQR: 3.7968
-Max: 4.4171 518.2692307692308 358.7489827289437 Min: 6012.0878
-Q1-1.5IQR: 6012.0878
-Q1: 6027.9709
-Median: 6051.7700
-Q3: 6095.9195
-Q3+1.5IQR: 6109.0348
-Max: 6109.0348 540.7051282051283 9.95541257939368 Min: 15.1690
-Q1-1.5IQR: 15.1690
-Q1: 15.2321
-Median: 15.2541
-Q3: 15.3806
-Q3+1.5IQR: 15.8413
-Max: 15.8413 563.1410256410257 358.07594604373446 Min: 27.9702
-Q1-1.5IQR: 27.9702
-Q1: 28.1661
-Median: 28.2310
-Q3: 28.2976
-Q3+1.5IQR: 28.6597
-Max: 36.1442 585.5769230769231 357.3335391686076 Min: 0.3791
-Q1-1.5IQR: 0.3791
-Q1: 0.3834
-Median: 0.3864
-Q3: 0.3927
-Q3+1.5IQR: 0.4067
-Max: 0.4544 608.0128205128206 358.93909641332016 Min: 1.1659
-Q1-1.5IQR: 1.1659
-Q1: 1.1730
-Median: 1.1765
-Q3: 1.1816
-Q3+1.5IQR: 1.1949
-Max: 1.9911 630.448717948718 358.89366613629886 Min: 7.5333
-Q1-1.5IQR: 7.5333
-Q1: 7.5565
-Median: 7.5799
-Q3: 7.6915
-Q3+1.5IQR: 7.9027
-Max: 8.3748 652.8846153846155 358.5207529530412 Min: 944.4445
-Q1-1.5IQR: 944.4445
-Q1: 945.7155
-Median: 947.9687
-Q3: 974.9824
-Q3+1.5IQR: 981.9817
-Max: 981.9817 675.3205128205129 303.7240976729662 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 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