added ex3.27~3.29