Can we take the most basic protocol that satisfies the most basic liveness property (obstruction freedom) and "upgrade" it to bounded wait freedom? **Contention manager:** is an object that allows progress of processes by providing contention-free periods for completing their invocations. It provides 2 operations: - `need_help(i)`: invoked by $p_i$ when it discovers that there is contention - `stop_help(i)`: invoked by $p_{i}$ when it terminates its current invocation **Enriched implementation:** when a process realizes that there is contention, it invokes need_help; when it completes its current operation, it invokes stop_help. Why is it different from lock/unlock? Because this allows failures, and they can also happen in the contention-free period.