Exercise 1: A Third Caller of the Shared Function — Possible Solution ==================================================================== THE NEW FUNCTION ------------------------------ def print_summary_email(order): total = calculate_order_total(order) return f"Order summary: your total was ${total:.2f}" A third caller of this chapter's own extracted calculate_order_total, alongside the existing print_invoice and print_receipt. BEFORE THE FEE CHANGE ------------------------------ Total: $100.00, Tax: $8.00 You paid: $100.00 Order summary: your total was $100.00 AFTER APPLYING A FLAT $2 HANDLING FEE TO calculate_order_total ONLY ------------------------------ Total: $102.00, Tax: $8.16 You paid: $102.00 Order summary: your total was $102.00 All three callers reflect the fee correctly, without any of them being edited directly - including print_summary_email, which didn't even exist when the shared function was first extracted. WHY THIS WORKS AS AN ANSWER ------------------------------ This is the chapter's own Extract Method finding, extended one caller further: the guarantee that "editing the shared function fixes every caller" doesn't weaken as more callers are added over time. A function written today against calculate_order_total inherits every future fix to that function automatically, the same as the two callers that existed when the extraction was first performed.