optional batching