finish 10.1.4
just finish code 10.21