add exerise 2.56-2.58