breaking: tap => apply