Separate the `batchput` logic into its own function

Also, a bit of memory cleanup and readme updates.