Kevin Shih’s exercise 10.1