added #35. modified #9,12