sort of did work on exercise 2, mostly pointless, ignore it's gibberish