better batch cancelling