Add Chapter 21, exercise 12 (GUI version)