diff --git a/polynomial.py b/polynomial.py
index b1d8233827581576beb7b2accfc3857819cbb0cf..498b28bdc31f17e7979531e530cd6c458feaf8a9 100644
--- a/polynomial.py
+++ b/polynomial.py
@@ -4,7 +4,8 @@ import json
 
 
 def unicode_superscripts(value):
-    exponent_dict = {"0": "⁰", "1": "¹", "2": "²", "3": "³", "4": "⁴", "5": "⁵", "6": "⁶", "7": "⁷", "8": "⁸", "9": "⁹"}
+    exponent_dict = {"0": "⁰", "1": "¹", "2": "²", "3": "³",
+                     "4": "⁴", "5": "⁵", "6": "⁶", "7": "⁷", "8": "⁸", "9": "⁹"}
     return ("⁻" if value < 0 else "") + "".join(exponent_dict[x] for x in str(abs(value)))
 
 
@@ -20,27 +21,37 @@ class Polynomial:
     def __add__(self, other):
         a = list(self.value)
         b = list(other.value)
-    
+
         a_count = len(a)
         b_count = len(b)
         if a_count > b_count:
-            diff = b_count-a_count
+            diff = a_count-b_count
             for x in range(diff):
                 b.append(0)
         else:
-            diff = a_count-b_count
+            diff = b_count-a_count
             for x in range(diff):
                 a.append(0)
-                
-        c = [0] * a_count
+
+        c = [0] * len(a)
         for x in range(len(a)):
             c[x] = a[x]+b[x]
-        
+
         return Polynomial(tuple(c))
-        
 
     def __mul__(self, other):
-        pass
+        a = list(self.value)
+        b = list(other.value)
+        a_count = len(a)
+        b_count = len(b)
+        size = ((a_count - 1) + (b_count - 1) + 1)
+        c = [0] * size
+
+        for i in range(a_count):
+            for j in range(b_count):
+                c[i+j] += a[i]*b[j]
+
+        return Polynomial(tuple(c))
 
     def __mod__(self, other):
         pass
@@ -72,13 +83,22 @@ def reed_solomon(points, data_length, last_error_index, prime_number):
 
 
 def main():
+
+    p1 = Polynomial((5, 1, 4))
+    p2 = Polynomial((5, 2, 3, 4))
+    p3 = p1*p2
+    print(p1)
+    print(p2)
+    print(p3)
+
     with open("messages.json") as f:
         messages = json.load(f)
     print(len(messages))
 
     for message in messages:
         points = [(x, y) for x, y in enumerate(message["points"])]
-        corrected_data = reed_solomon(points, message["data_length"], message["last_error_index"], message["prime_number"])
+        corrected_data = reed_solomon(
+            points, message["data_length"], message["last_error_index"], message["prime_number"])
         print(corrected_data)
         break