refactored ask_given