refactor again, reverting to find_in_batches to respect deleted_at and memory