abstracted out optimal_batch_size yielding. Distillates are now functions, not generators