refactor question and answer model, controller, and views