resolve #4,#5,#7