reviewed
added mulit-choice