added exercise 3.1~3.4