better cancellation checking on start