Batch implementation