Added tap handling via a callback block