up through exercise 17, map is cool
completed through sets