depend on tap, not result of tap