improved timer cancel