version 2, challenge 2 finished, and use the pgdir_walk