Refactored question API