pull: tap if necessary.