pull and push batches