refactor add_question