refactored quesiton_generator