Finishes Step 2

Add some comments, clean up code a bit