rewrote: takes arbitrary number of question types