QuestionAnswer Refactor to separate out sub types.