why is cancel done in an anonymous function and not the other ?
stick to one style.