finish ex12.13 12.14 12.15