diff --git a/README.md b/README.md
index 8629d40cc901f07acb398d176997f33532febc1b..8f069c514ef5489a49bcdc8339f5da3c86d5022c 100644
--- a/README.md
+++ b/README.md
@@ -11,63 +11,63 @@
   - [Description](#description)
     - [Task 1:  a RPN calculator in Python.](#task-1--a-rpn-calculator-in-python)
     - [Task 2: Hardware interface.](#task-2-hardware-interface)
-    - [Task 3: Documentation.](#task-3-documentation)
+    - [Task 3: UML Documentation.](#task-3-uml-documentation)
   - [Demos](#demos)
   - [Getting Started](#getting-started)
     - [Dependencies](#dependencies)
-    - [Installing](#installing)
   - [Authors](#authors)
   - [Version History](#version-history)
   - [License](#license)
 
 ## Description
-Worksheet 3:  
--This worksheet explored the UDP protocol. We will be decoding, encoding and comunicating with it in this rep
-FEATURES OF CALCULATOR
-**-This is a rep for only worksheet 3.**
-* [IOT - Worksheet 2 part 1 ](https://gitlab.uwe.ac.uk/jo2-holdsworth/iot-worksheet-2-part-1) can be found here  
-* [IOT - Worksheet 2 part 2 ](https://gitlab.uwe.ac.uk/jo2-holdsworth/iot-worksheet-2-part-2) can be found here 
-* [IOT - Worksheet 3](https://gitlab.uwe.ac.uk/jo2-holdsworth/iot-worksheet-3) **you are here**
+Coursework:
+- Using the skills developed over the last year, I have created a calculator using reverse polish notation. Run on a raspberry pi zero w this calculator uses a small OLED screen, matrix keypad all houses in a battery powered 3d printed case.
+- ![image](src/front.jpg)
+
+**-This is a rep for only the calculator coursework.**
+* [Digital Design - Worksheet 1](https://gitlab.uwe.ac.uk/jo2-holdsworth/digital-design-worksheet1) can be found here  
+* [Digital Design - Worksheet 2](https://gitlab.uwe.ac.uk/jo2-holdsworth/digital-design-worksheet2) can be found here
+* [Digital Design - Worksheet 3](https://gitlab.uwe.ac.uk/jo2-holdsworth/digital-design-worksheet-3) can be found here 
+* [Digtial Design - Calculator](https://gitlab.uwe.ac.uk/jo2-holdsworth/digital-design-calculator) **you are here**
 
 ### Task 1:  a RPN calculator in Python.
 * *RPN stands for reverse Polish Notation. RPN is postfix notation meaning the operators succeeds the operands.
-* ***stackClass.py*** A simple class to create a stack datatype within python. Contains a few error checking validation build into functions to help with the flow of the calculator program. The validation is used to prevent the user from performing actions or calculations that are not valid. The validation simply tells returns the current state of the stack. For example if the stack is empty and a `pop()` is called it will return **False**
-* ***sy.py*** A provided shunting yard algorithm. Takes input string and returns postfix. 
+* ***stackClass.py*** A simple class to create a stack datatype within python. Contains a few error checking validation build into functions to help with the flow of the calculator program. The validation is used to prevent the user from performing actions or calculations that are not valid. The validation simply tells returns the current state of the stack. For example if the stack is empty and a `pop()` is called it will return **False** ![image](src/screenshot1.PNG)
+* ***sy.py*** A provided shunting yard algorithm. Takes input string and returns postfix. ![image](src/screenshot2.PNG)
 * ***rpn.py*** contains rpn_eval a Reverse Polish Notation Evaluator 
-  * **def rpn_eval(tokens,stack)** Takes a string of expressions **+,-,*,/**  `pop()`'s left and right value from the stack and applies the first expression and then `push(value)`'s the value back onto the stack thus making calculations._
+  * **def rpn_eval(tokens,stack)** Takes a string of expressions **+,-,*,/**  `pop()`'s left and right value from the stack and applies the first expression and then `push(value)`'s the value back onto the stack thus making calculations. ![image](src/screenshot3.PNG)
 ### Task 2: Hardware interface.
 * The calculator hardware is made up of three sub components. We have the *raspberry pi zero w* it self, this connects the components together and makes the calulations. The keypad makes up the second component and the OLED screen makes up the third component. There are some additional features I have added but these will be discussed later on. This section is only relevant to the required components. 
-* ***The raspberry pi zero w*** This device is responsible for communicating to the other components. It also is responsible for the processing of *Task 1:*
-  * **calculator.py** This is the runner file. Responsible for connecting the hardware and making calculations. Displays welcome messages and puts `runCalculator()` into a loop 
-    * **def runCalculator(lastPressed=[])** This function Runs the calculator. Writes buttons icons to the screen. Takes a pre input of the last pressed, this prevents the wake button press from inputting a input into the stack. A full cycle of the **lastPressed** button not being pressed is required to be able to operate the button. Retrieves the inputs from `keyboardclass.ispressed()`, if buttons pressed is an operation for example ***'='*** is will then compute the sum entered. Other wise it will add the input to the stack and display the stack string on the screen.
+* ***The raspberry pi zero w*** This device is responsible for communicating to the other components. It also is responsible for the processing of *Task 1:* ![image](src/pi.jpg)
+  * **calculator.py** This is the runner file. Responsible for connecting the hardware and making calculations. Displays welcome messages and puts `runCalculator()` into a loop ![image](src/screenshot4.PNG)
+    * **def runCalculator(lastPressed=[])** This function Runs the calculator. Writes buttons icons to the screen. Takes a pre input of the last pressed, this prevents the wake button press from inputting a input into the stack. A full cycle of the **lastPressed** button not being pressed is required to be able to operate the button. Retrieves the inputs from `keyboardclass.ispressed()`, if buttons pressed is an operation for example ***'='*** is will then compute the sum entered. Other wise it will add the input to the stack and display the stack string on the screen. ![image](src/screenshot5.PNG)
 * ***The Keyboard*** The keyboard is a 8 button switch matrix. Its wired to the raspberry pi via GPIO pins *(Please see wiring diagram for further details)*. A switch matrix works by ending power to one column at a time and then detecting if a row is active. Each column and row is cycled through multiple times per second. The main benefit for a switch matrix board is the reduced number of GPIO pins required.
   * **keyboardClass.py** A class containing a few methods to the operation of the keyboard. Includes setup and outputs.
-    * **__init__()** Setup between the keyboard and the raspberry pi. Enables the connected GPIO pins *(Please see wiring diagram for further details)*
-    * **def isPressed(row, col)** Takes a row and column and returns if that button is pressed. Used mainly for debugging features and additional functionality. 
-    * **pressed()** Takes no arguments. Returns an array of string of all buttons currently pressed. Detects what rows and columns are being pressed and calls `keyConverter()` to covert row and column into a string of button. I chose this unique way of processing button presses so that multiple button presses can be detected for additional features.
-    * **keyConverter(row,col)** Coverts the given row and column into a string of the corresponding button button.
+    * **__init__()** Setup between the keyboard and the raspberry pi. Enables the connected GPIO pins *(Please see wiring diagram for further details)* ![image](src/screenshot6.PNG)
+    * **def isPressed(row, col)** Takes a row and column and returns if that button is pressed. Used mainly for debugging features and additional functionality. ![image](src/screenshot7.PNG)
+    * **pressed()** Takes no arguments. Returns an array of string of all buttons currently pressed. Detects what rows and columns are being pressed and calls `keyConverter()` to covert row and column into a string of button. I chose this unique way of processing button presses so that multiple button presses can be detected for additional features. ![image](src/screenshot8.PNG)
+    * **keyConverter(row,col)** Coverts the given row and column into a string of the corresponding button button. ![image](src/screenshot9.PNG)
 * ***The OLED screen*** The OLED screen is a small 129 by 64 screen. It will be used to display information to the user. Including the inputs and menu.
   * **dd_oled.c** An API to communicate to the screen. The OLED screen communicated over I2C and is connected the the `sda,scl` pins on the raspberry pi *(Please see wiring diagram for further details)* 
-    * **int oledSetPixel(int x, int y, unsigned char ucColor)** Sets the defined pixel to the given colour. This function forms the base for other functions.
-    * **int oledFill(unsigned char ucData)** Sets the screen to a given color. Also useful to reset the screen after input alteration.
-    * **int oledWriteString(int x, int y, char \*szMsg, int iSize)**  This function displays a string of a given size in a location that is defined. Used for displaying the menu and inputs from the user. 
-    * **int oledDrawLine(int x0, int y0, int x1, int y1, unsigned char ucPixel)** Draws a line across the screen at a given location and colour. Uses a naive line algorithm. Should be replaced in the future with a non naive line algorithm.
-    * **python API** pyOjbects are located at the bottom of the file. These object are used to connect the C file to the python extension. 
-  * **setup.py** setup.py is a file used in the processes of building the c to python extension for the olid API.
+    * **int oledSetPixel(int x, int y, unsigned char ucColor)** Sets the defined pixel to the given colour. This function forms the base for other functions. ![image](src/screenshot10.PNG)
+    * **int oledFill(unsigned char ucData)** Sets the screen to a given color. Also useful to reset the screen after input alteration. ![image](src/screenshot11.PNG)
+    * **int oledWriteString(int x, int y, char \*szMsg, int iSize)**  This function displays a string of a given size in a location that is defined. Used for displaying the menu and inputs from the user. ![image](src/screenshot12.PNG)
+    * **int oledDrawLine(int x0, int y0, int x1, int y1, unsigned char ucPixel)** Draws a line across the screen at a given location and colour. Uses a naive line algorithm. Should be replaced in the future with a non naive line algorithm. ![image](src/screenshot13.PNG)
+    * **python API** pyOjbects are located at the bottom of the file. These object are used to connect the C file to the python extension. ![image](src/screenshot14.PNG)
+  * **setup.py** setup.py is a file used in the processes of building the c to python extension for the olid API. ![image](src/screenshot15.PNG)
 * ***Additional features*** This sections discusses some of the additional features I have added to the calculator.
-  * **Buttons** Multiple buttons make up extra functions of the calculator.
-    * **Brackets** There are two buttons near the screen. These buttons are soldered onto a perf board along with the led. These buttons are designed to be used along with a icon on the screen to signify the function of the buttons. Currently the buttons are used to input brackets into the calculator. 
-    * **On-Off** Located on the side of the calculator lies a push button with a On-Off icon. Pressing this button toggles a toggle switch connected between the negative leg of the batery and the raspberry pi.
-  * **LED** As the rapsberry pi is located within the case, I have added a LED status light that indicates that the device is powered and working.
-  * **Battery** The battery is a small LIPO Cell connected to the usb-c charging port. It charges relatively slow but due to the low power consumption of the raspberry pi this is not an issue. 
-  * **USB-C** The adafruit usb-c board is responsible for charging the battery. It charges the battery at 100ma.
-  * **Case** I designed the case to house all the components. I used fusion 360 and my 3d printer. Everything is securely mounted with cap hex bolts and nuts that are recessed into the case.
+  * **Buttons** Multiple buttons make up extra functions of the calculator. ![image](src/buttonBoard.jpg)
+    * **Brackets** There are two buttons near the screen. These buttons are soldered onto a perf board along with the led. These buttons are designed to be used along with a icon on the screen to signify the function of the buttons. Currently the buttons are used to input brackets into the calculator. ![image](src/brackets.jpg)
+    * **On-Off** Located on the side of the calculator lies a push button with a On-Off icon. Pressing this button toggles a toggle switch connected between the negative leg of the batery and the raspberry pi. ![image](src/onoff.jpg)
+  * **LED** As the rapsberry pi is located within the case, I have added a LED status light that indicates that the device is powered and working. ![image](src/brackets.jpg)
+  * **Battery** The battery is a small LIPO Cell connected to the usb-c charging port. It charges relatively slow but due to the low power consumption of the raspberry pi this is not an issue. ![image](src/battery.jpg)
+  * **USB-C** The adafruit usb-c board is responsible for charging the battery. It charges the battery at 100ma. ![image](src/usbc.jpg)
+  * **Case** I designed the case to house all the components. I used fusion 360 and my 3d printer. Everything is securely mounted with cap hex bolts and nuts that are recessed into the case. ![image](src/screenshot16.PNG) ![image](src/screenshot17.PNG) ![image](src/printer.jpg) ![image](src/keypad.jpg)
 ___
-### Task 3: Documentation.
+### Task 3: UML Documentation.
 * This task involves building UML diagrams for the calculator.
 * ***Wiring Diagram*** This diagram demonstrates how the calculator is wired up. ![image](src/Wiring-Diagram.PNG)
 * ***UML Class Diagram***  A class diagram for the classes involved with the calculator. ![image](src/UML.PNG)
-
 ___
 ## Demos
 * Completed demo in class
@@ -76,22 +76,13 @@ ___
 ## Getting Started
 
 * Running the task files
-  * Task 1: `python3 udpdecoder.py`
-  * Task 2: `python3 checksum.py`
-  * Task 3: `python3 serverudptime.py`
+  * Calculator: `python3 calculator.py`
 
 ### Dependencies
 
-* unittest
-* asyncio
-* websockets
-* json
 * time
-* base64
-
-### Installing
-
-* Nothing to install
+* dd_oled
+* RPi.GPIO
 
 ## Authors
 
diff --git a/__pycache__/rpn.cpython-38.pyc b/__pycache__/rpn.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..737ac3b2a4ee1a254cca31332dd46538ed8565cd
Binary files /dev/null and b/__pycache__/rpn.cpython-38.pyc differ
diff --git a/__pycache__/stackClass.cpython-38.pyc b/__pycache__/stackClass.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..19c11f7c3b3f02f160262659ac8e0d2ea028a654
Binary files /dev/null and b/__pycache__/stackClass.cpython-38.pyc differ
diff --git a/__pycache__/unittest.cpython-38.pyc b/__pycache__/unittest.cpython-38.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..0d0dd47698be415855fd5c7efcc04a4f72c32d2c
Binary files /dev/null and b/__pycache__/unittest.cpython-38.pyc differ
diff --git a/calculator.py b/calculator.py
index 0bd7d3b72e3ca5991a0aa56043cfa3da7198c946..d14b15f209a83b8e35c8566a69804c3185e3a97f 100644
--- a/calculator.py
+++ b/calculator.py
@@ -1,3 +1,10 @@
+# ==============
+# File: calculator.py
+# By: Jack Holdsworth - 20023933
+# Use: A file to run the calculator and all of its sub components
+# Written on: Python 3.8
+# ==============
+
 import keyboardClass
 import stackClass
 import time
@@ -64,52 +71,44 @@ def runCalculator(lastPressed=[]): # the calculator function. Takes parameters f
 
 
     print(type(test))
-    # ['1', '+', '2']
-    # for item in test:
-    #     print(item)
-    #     print("hi")
     ans = rpn.rpn_eval(test,rpnStack)
     print(ans)
     dd_oled.oled_fill(0) # print answer 
     dd_oled.write_string(0, 0, ''.join(ans)[:15], 0)
     dd_oled.write_string(0, 1, ''.join(ans)[15:], 0) 
 
-# print(f"1 : {sy.shunt(stack.stack)}")
 
+# SETUP
 keypad = keyboardClass.Keypad() # init keyboard
 dd_oled.oled_init(1, 0x3C, 1, 0, 0) # init screen
 dd_oled.oled_fill(0) # clear
 dd_oled.write_string(1, 0, 'Welcome', 1) #welcome message
 dd_oled.write_string(5, 3, 'Press any key', 2)
 lastPressed = [] # key press tracker
-while True: # forever loop
-    pressed = keypad.pressed()
-    if pressed != lastPressed:
+
+# Welcome screen
+while True: 
+    pressed = keypad.pressed() 
+    if pressed != lastPressed: # Waits for a new key, if so breaks loop
         lastPressed = pressed
         break
     lastPressed = pressed
 dd_oled.oled_fill(0)
+
+# Calculator and start again screen.
 while True:
-    runCalculator(lastPressed)
+    runCalculator(lastPressed) # Run calculator ignoring button pressed until released for 1 cycle.
     lastPressed = []
-    dd_oled.write_string(5, 2, 'Press any key.', 2)
+    dd_oled.write_string(5, 2, 'Press any key.', 2) # reset screen
     # dd_oled.write_string(5, 3, 'or \'#\' to exit', 2)
     
+    #Reset screen loop
     while True:
         time.sleep(1)
         pressed = keypad.pressed()
         if pressed != lastPressed:
-            print(f"pressed:{pressed}")
-            # if '#' in pressed:
-            #     GPIO.cleanup()
-            #     exit()
-                
-            # else:
+            #print(f"pressed:{pressed}")
             lastPressed = pressed
             dd_oled.oled_fill(0)
-            break
-        lastPressed = pressed
-
-# ADD mine sweeper
-
-
+            break # return to parent loop, starting calculator
+        lastPressed = pressed
\ No newline at end of file
diff --git a/keyboardClass.py b/keyboardClass.py
index db2630eb9af5aad4185a5f046411555f8a690189..0235b99bcebe2ece2847103195b4bfd63e5b85fb 100644
--- a/keyboardClass.py
+++ b/keyboardClass.py
@@ -1,9 +1,15 @@
+# ==============
+# File: keyboardClass.py
+# By: Jack Holdsworth - 20023933
+# Use: A class to setup the switch matrix keyboard and two additional buttons.
+# Written on: Python 3.8
+# ==============
 import RPi.GPIO as GPIO
-import time
 
 class Keypad:
 
     def __init__(self):
+        # GPIO pin out (BCM)
         self.COL1 = 6
         self.COL2 = 13
         self.COL3 = 19
@@ -12,9 +18,14 @@ class Keypad:
         self.ROW2 = 20
         self.ROW3 = 21
         self.ROW4 = 5
+        #Cols and rows for setup loop and other methods.
         self.cols = [self.COL1, self.COL2 , self.COL3, self.COL4]
         self.rows = [self.ROW1, self.ROW2, self.ROW3, self.ROW4]
+        
+        #GPIO setup in BCM mode
         GPIO.setmode(GPIO.BCM)
+
+        #GPIO pin setup
         for row in self.rows:
             GPIO.setup(row, GPIO.IN, pull_up_down=GPIO.PUD_UP)
         for col in self.cols:
@@ -23,32 +34,41 @@ class Keypad:
         GPIO.setup(15,GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
         GPIO.setup(14,GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
 
-    def isPressed(self, row, col):
+    def isPressed(self, row, col): # Returns if a given button is pressed.
+        # Set output col to sense
         GPIO.output(col, GPIO.LOW)
+        # gather state of row
         state = GPIO.input(row)
+        # set output col to idle
         GPIO.output(col, GPIO.HIGH)
         # print("state: " + str(state))
+
+        # state return
         if state == 1:
             return False
         else:
             return True
         
-    def pressed(self):
+    def pressed(self): # returns all buttons currently being pressed.
         pressed = []
         # print(len(self.rows))
+        #loop through each cell using rows and cols
         for row in range(0,len(self.rows)):
             for col in range(0,len(self.cols)):
                 if self.isPressed(self.rows[row],self.cols[col]) == True:
+                    # adds to array as all currently pressed buttons must be returned
                     pressed.append(self.keyConverter(row,col))
                     # print("pressed detected ########################")
                     # print("appended"+ str(self.keyConverter(row,col)))
-        if GPIO.input(15) == 1:
+
+        # additional buttons
+        if GPIO.input(15) == 1: 
             pressed.append('(')
         if GPIO.input(14) == 1:
             pressed.append(')')
         return pressed
     
-    def keyConverter(self,row,col):
+    def keyConverter(self,row,col): # keypad button converter
         # print("row: " + str(row) + " col: " + str(col))
         if row == 0 and col == 0:
             return '1'
@@ -81,10 +101,4 @@ class Keypad:
         elif row == 3 and col == 2:
             return "#"
         elif row == 3 and col == 3:
-            return "="
-    
-# input = Keypad()
-
-# while(1):
-#     print(input.isPressed(1,1))
-#     time.sleep(.5)
\ No newline at end of file
+            return "="
\ No newline at end of file
diff --git a/rpn.py b/rpn.py
index 071ec412e2127b33dc7e862d1d427ac427be0e6d..1366becf4e8f46f7222efa18f01e7d82b3de276e 100644
--- a/rpn.py
+++ b/rpn.py
@@ -1,12 +1,19 @@
-def rpn_eval(tokens,stack):
+# ==============
+# File: rpn.py
+# By: Jack Holdsworth - 20023933
+# Use: A Reverse Polish Notation Evaluator
+# Written on: Python 3.8
+# ==============
+
+def rpn_eval(tokens,stack): # evaluates RPN stock into a given stack.
     print(tokens)
-    for item in tokens:
+    for item in tokens: #Each character
         print(item)
-        if item in "+-*/":
-            print("here")
-            right = float(stack.pop())
-            left = float(stack.pop())
-            if item == "+":
+        if item in "+-*/": #Operators 
+            #print("here")
+            right = float(stack.pop()) #Left number
+            left = float(stack.pop()) #Right number
+            if item == "+": #operators 
                 output = left + right
             elif item == "-":
                 output = left - right
@@ -14,8 +21,8 @@ def rpn_eval(tokens,stack):
                 output = left * right
             elif item == "/":
                 output = left / right
-            stack.push(str(output))
+            stack.push(str(output)) #push number back
         else:
-            stack.push(item)
+            stack.push(item) #push number
             pass
-    return stack.stack
+    return stack.stack #
diff --git a/setup.py b/setup.py
index 1b114c9165dfa0421ddfc907c8cc5cd016328b42..2581f50eb16d8f7068fae03c550cccb4d54f5648 100644
--- a/setup.py
+++ b/setup.py
@@ -1,3 +1,9 @@
+# ==============
+# File: setup.py
+# By: Jack Holdsworth - 20023933
+# Use: A extension API builder for the dd_oled library
+# Written on: Python 3.8
+# ==============
 from distutils.core import setup, Extension
 def main():
 
@@ -9,4 +15,4 @@ def main():
         ext_modules=[Extension("dd_oled", ["dd_oled.c"])]
         )
 if __name__ == "__main__":
-    main()
+    main()
\ No newline at end of file
diff --git a/src/back.jpg b/src/back.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c8a8db839863284b875b07bfec3257a6d95ff8ac
Binary files /dev/null and b/src/back.jpg differ
diff --git a/src/battery.jpg b/src/battery.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d81477835583d461e35d4bfb19300eb08f2b9b59
Binary files /dev/null and b/src/battery.jpg differ
diff --git a/src/brackets.jpg b/src/brackets.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1bfcac22a11f399dfdc10bf8ad9c64d41a210492
Binary files /dev/null and b/src/brackets.jpg differ
diff --git a/src/buttonBoard.jpg b/src/buttonBoard.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bf4304e187b768e5abb3611e0e5c7ac05e47bfda
Binary files /dev/null and b/src/buttonBoard.jpg differ
diff --git a/src/front.jpg b/src/front.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..60394c520026f2fc227c47534841e33b1b7b22b5
Binary files /dev/null and b/src/front.jpg differ
diff --git a/src/keypad.jpg b/src/keypad.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..642c27304b8472d010d52ff29c01c022ae89ee82
Binary files /dev/null and b/src/keypad.jpg differ
diff --git a/src/onoff.jpg b/src/onoff.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c7f716fe26b1ece6d990dcc80bdd0afed66e7693
Binary files /dev/null and b/src/onoff.jpg differ
diff --git a/src/pi.jpg b/src/pi.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..d295bc1e30b7f934c3c19d01aacb56a4957cb5e8
Binary files /dev/null and b/src/pi.jpg differ
diff --git a/src/printer.jpg b/src/printer.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..a75f51ce675056f8a7de6201332b6d5a166512e8
Binary files /dev/null and b/src/printer.jpg differ
diff --git a/src/screenshot1.PNG b/src/screenshot1.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..3714e4a94fe1ef56cb95e857af0ddaee7438c349
Binary files /dev/null and b/src/screenshot1.PNG differ
diff --git a/src/screenshot10.PNG b/src/screenshot10.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..f2179699ee157d848dc6c34db61e7dd840734bc7
Binary files /dev/null and b/src/screenshot10.PNG differ
diff --git a/src/screenshot11.PNG b/src/screenshot11.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..9616747ee42d35cef4c64a16937391daabfb0f88
Binary files /dev/null and b/src/screenshot11.PNG differ
diff --git a/src/screenshot12.PNG b/src/screenshot12.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..cb291d57132df524d50e7bfd376e9c8cc16d0fee
Binary files /dev/null and b/src/screenshot12.PNG differ
diff --git a/src/screenshot13.PNG b/src/screenshot13.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..170f310e884236a5cb9b1715536d1dae0a764dc2
Binary files /dev/null and b/src/screenshot13.PNG differ
diff --git a/src/screenshot14.PNG b/src/screenshot14.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..30fcfc98a89a62e15acc14f83aeb8e8a6e26a468
Binary files /dev/null and b/src/screenshot14.PNG differ
diff --git a/src/screenshot15.PNG b/src/screenshot15.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..d6012e7d1609087c8cf48cba57ca0d7b9b7343c4
Binary files /dev/null and b/src/screenshot15.PNG differ
diff --git a/src/screenshot16.PNG b/src/screenshot16.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..6c469fe872a0fde01a908daecea214188e035e0e
Binary files /dev/null and b/src/screenshot16.PNG differ
diff --git a/src/screenshot17.PNG b/src/screenshot17.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..7e97f9741eb3e8e8783d9dd7d9f4aad96d89317e
Binary files /dev/null and b/src/screenshot17.PNG differ
diff --git a/src/screenshot2.PNG b/src/screenshot2.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..370307289314ca32c604c50b0d8a8d36650af242
Binary files /dev/null and b/src/screenshot2.PNG differ
diff --git a/src/screenshot3.PNG b/src/screenshot3.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..fca3af0285fcc0590f3576e1ac0ec3c5b75dac1b
Binary files /dev/null and b/src/screenshot3.PNG differ
diff --git a/src/screenshot4.PNG b/src/screenshot4.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..885641fb5712ad9c22629fd75f7889530a314600
Binary files /dev/null and b/src/screenshot4.PNG differ
diff --git a/src/screenshot5.PNG b/src/screenshot5.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..d7747618050ef14eff44cb6c12bd36f65fbb9872
Binary files /dev/null and b/src/screenshot5.PNG differ
diff --git a/src/screenshot6.PNG b/src/screenshot6.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..658a92396e468350829962d12749b194b9712bb9
Binary files /dev/null and b/src/screenshot6.PNG differ
diff --git a/src/screenshot7.PNG b/src/screenshot7.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..9eb7872e4f199226d6d6a49a26429f42dbab5d1a
Binary files /dev/null and b/src/screenshot7.PNG differ
diff --git a/src/screenshot8.PNG b/src/screenshot8.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..951ac576bbb7a7f781a64c97f1af9ae130094e4a
Binary files /dev/null and b/src/screenshot8.PNG differ
diff --git a/src/screenshot9.PNG b/src/screenshot9.PNG
new file mode 100644
index 0000000000000000000000000000000000000000..1e1efc0d3cb6d809509f6d1cfd9329dec5fe7efa
Binary files /dev/null and b/src/screenshot9.PNG differ
diff --git a/src/side.jpg b/src/side.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..9366d0192f730a82724bcfff6cd89eeffbf12dd1
Binary files /dev/null and b/src/side.jpg differ
diff --git a/src/usbc.jpg b/src/usbc.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..1fddc28337abdd2664977cd6dfc5fad97d7f7b65
Binary files /dev/null and b/src/usbc.jpg differ
diff --git a/src/uwe.png b/src/uwe.png
new file mode 100644
index 0000000000000000000000000000000000000000..e3c5878ecfa07bf72ea7239a678182a37bcb669e
Binary files /dev/null and b/src/uwe.png differ
diff --git a/stackClass.py b/stackClass.py
index 4adeff075d29236abd0c0e16a569fa112037c787..6d3fa8a01c8111e790b8b4d07e31d8e35bc166a0 100644
--- a/stackClass.py
+++ b/stackClass.py
@@ -1,3 +1,10 @@
+# ==============
+# File: stackClass.py
+# By: Jack Holdsworth - 20023933
+# Use: a stack data type made for python. Contains error checking for calculator
+# Written on: Python 3.8
+# ==============
+
 class stack:
     def __init__ (self,size = 30): # max size of stack is 32 by default
         self.stack = []
diff --git a/sy.py b/sy.py
index 9651527636590914c5256d475d81eb355e1a3dc4..eeae9d9d0cb8aa22ff73317493dbec690861b160 100644
--- a/sy.py
+++ b/sy.py
@@ -133,7 +133,6 @@ def shunt(tokens, debug=False):
             operators.append(current_token)
 
     output.extend(operators[::-1])
-
     return output
 
 
@@ -141,4 +140,5 @@ def shunt(tokens, debug=False):
 
 tokens = tokenize("3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3")
 print(tokens)
+print(shunt(tokens))
 print(" ".join(shunt(tokens)))
diff --git a/tempCodeRunnerFile.py b/tempCodeRunnerFile.py
new file mode 100644
index 0000000000000000000000000000000000000000..4e80bb010588613932377863244f089f5e3602da
--- /dev/null
+++ b/tempCodeRunnerFile.py
@@ -0,0 +1,2 @@
+
+print(shunt(tokens))
\ No newline at end of file