Final commit for part 2, even though it unfortunately doesn't work
completely