added ex4.3~ex4.19