Added problem 12, cleaned up some of the code, added a description at the start of each file