tap event only needs to fire once per block