added exercise 2.75 & 2.78~2.80