Refactored 'take' with callbacks for execution control