diff --git a/day_5/input.txt b/day_5/input.txt
index 9fa69f3d9f126c7d80412a78ff8b7359c7b4d06f..04bbec485afd8ecd583fcb4b9aa21c39afbf2cb3 100644
--- a/day_5/input.txt
+++ b/day_5/input.txt
@@ -1 +1 @@
-3,9,8,9,10,9,4,9,99,-1,8,99,9999,3,225,1,225,6,6,1100,1,238,225,104,0,1101,72,36,225,1101,87,26,225,2,144,13,224,101,-1872,224,224,4,224,102,8,223,223,1001,224,2,224,1,223,224,223,1102,66,61,225,1102,25,49,224,101,-1225,224,224,4,224,1002,223,8,223,1001,224,5,224,1,223,224,223,1101,35,77,224,101,-112,224,224,4,224,102,8,223,223,1001,224,2,224,1,223,224,223,1002,195,30,224,1001,224,-2550,224,4,224,1002,223,8,223,1001,224,1,224,1,224,223,223,1102,30,44,225,1102,24,21,225,1,170,117,224,101,-46,224,224,4,224,1002,223,8,223,101,5,224,224,1,224,223,223,1102,63,26,225,102,74,114,224,1001,224,-3256,224,4,224,102,8,223,223,1001,224,3,224,1,224,223,223,1101,58,22,225,101,13,17,224,101,-100,224,224,4,224,1002,223,8,223,101,6,224,224,1,224,223,223,1101,85,18,225,1001,44,7,224,101,-68,224,224,4,224,102,8,223,223,1001,224,5,224,1,223,224,223,4,223,99,0,0,0,677,0,0,0,0,0,0,0,0,0,0,0,1105,0,99999,1105,227,247,1105,1,99999,1005,227,99999,1005,0,256,1105,1,99999,1106,227,99999,1106,0,265,1105,1,99999,1006,0,99999,1006,227,274,1105,1,99999,1105,1,280,1105,1,99999,1,225,225,225,1101,294,0,0,105,1,0,1105,1,99999,1106,0,300,1105,1,99999,1,225,225,225,1101,314,0,0,106,0,0,1105,1,99999,7,677,226,224,102,2,223,223,1005,224,329,101,1,223,223,8,677,226,224,1002,223,2,223,1005,224,344,1001,223,1,223,1107,677,677,224,102,2,223,223,1005,224,359,1001,223,1,223,1107,226,677,224,102,2,223,223,1005,224,374,101,1,223,223,7,226,677,224,102,2,223,223,1005,224,389,101,1,223,223,8,226,677,224,1002,223,2,223,1005,224,404,101,1,223,223,1008,226,677,224,1002,223,2,223,1005,224,419,1001,223,1,223,107,677,677,224,102,2,223,223,1005,224,434,101,1,223,223,1108,677,226,224,1002,223,2,223,1006,224,449,101,1,223,223,1108,677,677,224,102,2,223,223,1006,224,464,101,1,223,223,1007,677,226,224,102,2,223,223,1006,224,479,101,1,223,223,1008,226,226,224,102,2,223,223,1006,224,494,101,1,223,223,108,226,226,224,1002,223,2,223,1006,224,509,101,1,223,223,107,226,226,224,102,2,223,223,1006,224,524,101,1,223,223,1107,677,226,224,102,2,223,223,1005,224,539,1001,223,1,223,108,226,677,224,1002,223,2,223,1005,224,554,101,1,223,223,1007,226,226,224,102,2,223,223,1005,224,569,101,1,223,223,8,226,226,224,102,2,223,223,1006,224,584,101,1,223,223,1008,677,677,224,1002,223,2,223,1005,224,599,1001,223,1,223,107,226,677,224,1002,223,2,223,1005,224,614,1001,223,1,223,1108,226,677,224,102,2,223,223,1006,224,629,101,1,223,223,7,677,677,224,1002,223,2,223,1005,224,644,1001,223,1,223,108,677,677,224,102,2,223,223,1005,224,659,101,1,223,223,1007,677,677,224,102,2,223,223,1006,224,674,101,1,223,223,4,223,99,226
+3,225,1,225,6,6,1100,1,238,225,104,0,1101,72,36,225,1101,87,26,225,2,144,13,224,101,-1872,224,224,4,224,102,8,223,223,1001,224,2,224,1,223,224,223,1102,66,61,225,1102,25,49,224,101,-1225,224,224,4,224,1002,223,8,223,1001,224,5,224,1,223,224,223,1101,35,77,224,101,-112,224,224,4,224,102,8,223,223,1001,224,2,224,1,223,224,223,1002,195,30,224,1001,224,-2550,224,4,224,1002,223,8,223,1001,224,1,224,1,224,223,223,1102,30,44,225,1102,24,21,225,1,170,117,224,101,-46,224,224,4,224,1002,223,8,223,101,5,224,224,1,224,223,223,1102,63,26,225,102,74,114,224,1001,224,-3256,224,4,224,102,8,223,223,1001,224,3,224,1,224,223,223,1101,58,22,225,101,13,17,224,101,-100,224,224,4,224,1002,223,8,223,101,6,224,224,1,224,223,223,1101,85,18,225,1001,44,7,224,101,-68,224,224,4,224,102,8,223,223,1001,224,5,224,1,223,224,223,4,223,99,0,0,0,677,0,0,0,0,0,0,0,0,0,0,0,1105,0,99999,1105,227,247,1105,1,99999,1005,227,99999,1005,0,256,1105,1,99999,1106,227,99999,1106,0,265,1105,1,99999,1006,0,99999,1006,227,274,1105,1,99999,1105,1,280,1105,1,99999,1,225,225,225,1101,294,0,0,105,1,0,1105,1,99999,1106,0,300,1105,1,99999,1,225,225,225,1101,314,0,0,106,0,0,1105,1,99999,7,677,226,224,102,2,223,223,1005,224,329,101,1,223,223,8,677,226,224,1002,223,2,223,1005,224,344,1001,223,1,223,1107,677,677,224,102,2,223,223,1005,224,359,1001,223,1,223,1107,226,677,224,102,2,223,223,1005,224,374,101,1,223,223,7,226,677,224,102,2,223,223,1005,224,389,101,1,223,223,8,226,677,224,1002,223,2,223,1005,224,404,101,1,223,223,1008,226,677,224,1002,223,2,223,1005,224,419,1001,223,1,223,107,677,677,224,102,2,223,223,1005,224,434,101,1,223,223,1108,677,226,224,1002,223,2,223,1006,224,449,101,1,223,223,1108,677,677,224,102,2,223,223,1006,224,464,101,1,223,223,1007,677,226,224,102,2,223,223,1006,224,479,101,1,223,223,1008,226,226,224,102,2,223,223,1006,224,494,101,1,223,223,108,226,226,224,1002,223,2,223,1006,224,509,101,1,223,223,107,226,226,224,102,2,223,223,1006,224,524,101,1,223,223,1107,677,226,224,102,2,223,223,1005,224,539,1001,223,1,223,108,226,677,224,1002,223,2,223,1005,224,554,101,1,223,223,1007,226,226,224,102,2,223,223,1005,224,569,101,1,223,223,8,226,226,224,102,2,223,223,1006,224,584,101,1,223,223,1008,677,677,224,1002,223,2,223,1005,224,599,1001,223,1,223,107,226,677,224,1002,223,2,223,1005,224,614,1001,223,1,223,1108,226,677,224,102,2,223,223,1006,224,629,101,1,223,223,7,677,677,224,1002,223,2,223,1005,224,644,1001,223,1,223,108,677,677,224,102,2,223,223,1005,224,659,101,1,223,223,1007,677,677,224,102,2,223,223,1006,224,674,101,1,223,223,4,223,99,226
diff --git a/day_5/main.py b/day_5/main.py
index 7c5dae98cd1559432b08353d6f23fd96dde25a00..5ec20e47d3256e61229f490503a21fe2449df8d9 100644
--- a/day_5/main.py
+++ b/day_5/main.py
@@ -1,10 +1,9 @@
-"""1202 Program Alarm."""
-import itertools
+"""Day 5: Sunny with a Chance of Asteroids."""
 
 
 def get_codes():
-    with open('input.txt') as f:
-        return [int(num) for num in f.readline().strip().split(',')]
+    with open("input.txt") as f:
+        return [int(num) for num in f.readline().strip().split(",")]
 
 
 def get_opcode(opcode):
@@ -17,19 +16,6 @@ def get_opcode(opcode):
     tmp //= 10
     t = tmp % 10
 
-    return h, k, t, op
-
-
-def get_opcode2(opcode):
-    tmp = int(opcode)
-    op = tmp % 100
-    tmp //= 100
-    h = tmp % 10
-    tmp //= 10
-    k = tmp % 10
-    tmp //= 10
-    t = tmp % 10
-
     if op in (1, 2, 7, 8):
         t = 1
     if op in (3,):
@@ -38,32 +24,11 @@ def get_opcode2(opcode):
     return (h, k, t), op
 
 
-def op_get_size(op):
-    if op == 1:
-        return 4
-    if op == 2:
-        return 4
-    if op == 3:
-        return 2
-    if op == 4:
-        return 2
-    if op == 5:
-        return 3
-    if op == 6:
-        return 3
-    if op == 7:
-        return 4
-    if op == 8:
-        return 4
-    if op == 99:
-        return 1
-
-
 def get_next_command(ip, codes):
-    parm_counts = {1:3, 2:3, 3:1, 4:1, 5:2, 6:2, 7:3, 8:3, 99:0}
-    modes, op = get_opcode2(codes[ip])
+    parm_counts = {1: 3, 2: 3, 3: 1, 4: 1, 5: 2, 6: 2, 7: 3, 8: 3, 99: 0}
+    modes, op = get_opcode(codes[ip])
 
-    params = [0,0,0]
+    params = [0, 0, 0]
     ip += 1
     for x in range(parm_counts[op]):
         params[x] = codes[ip]
@@ -71,38 +36,39 @@ def get_next_command(ip, codes):
             params[x] = codes[params[x]]
         ip += 1
 
-
     return ip, op, params
 
 
 def exec_command(ip, op, params, codes):
-    if op == 1:
+    if op == 1:                            # add
         codes[params[2]] = params[0] + params[1]
-    elif op == 2:
+    elif op == 2:                          # multiply
         codes[params[2]] = params[0] * params[1]
-    elif op == 3:
-        val = int(input('Enter input val? '))
+    elif op == 3:                          # inout
+        val = int(input("Enter input val? "))
         codes[params[0]] = val
-    elif op == 4:
-        print(f'Output value = ({params[0]})')
-    elif op == 5:
+    elif op == 4:                          # output
+        print(f"Output value = ({params[0]})")
+    elif op == 5:                          # branch true
         if params[0] != 0:
             ip = params[1]
-    elif op == 6:
+    elif op == 6:                          # branch false
         if params[0] == 0:
             ip = params[1]
-    elif op == 7:
+    elif op == 7:                          # less than
         if params[0] < params[1]:
-            params[2] = 1
-    elif op == 8:
+            codes[params[2]] = 1
+        else:
+            codes[params[2]] = 0
+    elif op == 8:                          # equals
         if params[0] == params[1]:
-            params[2] = 1
+            codes[params[2]] = 1
         else:
-            params[2] = 0
-    elif op == 99:
+            codes[params[2]] = 0
+    elif op == 99:                         # halt
         ip = -1
     else:
-        print(f'Bad Op Code {op}')
+        print(f"Bad Op Code {op}")
         ip = -1
 
     return ip
@@ -115,55 +81,9 @@ def run_program(codes):
         ip = exec_command(ip, op, params, codes)
 
 
-def run_computer(codes):
-    ip = 0
-    while codes[ip] != 99:
-        p1_mode, p2_mode, p3_mode, op = get_opcode(codes[ip+0])
-        # print(p1_mode, p2_mode, p3_mode, op)
-        size = op_get_size(op)
-        if size == 1:
-            pass
-
-        parm1 = codes[ip+1]
-        outpt = parm1
-        if p1_mode == 0:
-            parm1 = codes[parm1]
-
-        if size == 4:
-            parm2 = codes[ip+2]
-            if p2_mode == 0:
-                parm2 = codes[parm2]
-
-            outpt = codes[ip+3]
-
-        if op == 1:
-            codes[outpt] = parm1 + parm2
-        elif op == 2:
-            codes[outpt] = parm1 * parm2
-        elif op == 3:
-            val = int(input('Enter input val? '))
-            codes[outpt] = val
-        elif op == 4:
-            print(f'Output value = ({parm1})')
-        else:
-            print(f'Bad Op Code {op}')
-            break
-        ip += size
-
-
-def main2():
-    """Drive the program."""
-    codes = get_codes()
-
-    new_codes = [code for code in codes]
-
-    run_computer(new_codes)
-
-
 def main():
     """Drive the program."""
     codes = get_codes()
-
     run_program(codes)