I think this section would be less confusing if you just declared the batch var above the for loop, then set `batch = batcher.GetEmptyBatch()` inside the for loop. then you wouldn't need to use `break NEWBATCH`.

Actually, even better would be if you pulled the inner loop into its own function.