imple ex22_05
ment
finish ex22_06, ex22_07, and ex22_08.