Refactored to handle natural language.