use bisect for cancel events