question.rb fully refactored