fixing `cancel` not properly clearing timers. #346