diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 0ce6dd310f7029af638a871016fea3bf2fb2ab1c..8422d715231aae45c29565a32dc95aaad9b767fd 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -2,11 +2,7 @@
 <project version="4">
   <component name="ChangeListManager">
     <list default="true" id="ad75bb9b-12db-4cad-af64-4c68cecdb87b" name="Default Changelist" comment="">
-      <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/commit-to-solr.js" beforeDir="false" afterPath="$PROJECT_DIR$/commit-to-solr.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/config.json" beforeDir="false" afterPath="$PROJECT_DIR$/config.json" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/generate-datacrates.js" beforeDir="false" afterPath="$PROJECT_DIR$/generate-datacrates.js" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
     </list>
     <ignored path="$PROJECT_DIR$/.tmp/" />
@@ -32,8 +28,17 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/lib/CatalogSolr.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="452">
-              <caret line="131" column="49" selection-start-line="131" selection-start-column="34" selection-end-line="131" selection-end-column="49" />
+            <state relative-caret-position="125">
+              <caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/package.json">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="300">
+              <caret line="20" column="25" selection-start-line="20" selection-start-column="25" selection-end-line="20" selection-end-column="25" />
             </state>
           </provider>
         </entry>
@@ -47,11 +52,11 @@
           </provider>
         </entry>
       </file>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/commit-to-solr.js">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="606">
-              <caret line="184" column="16" lean-forward="true" selection-start-line="184" selection-start-column="16" selection-end-line="184" selection-end-column="16" />
+            <state relative-caret-position="112">
+              <caret line="138" column="8" lean-forward="true" selection-start-line="138" selection-start-column="8" selection-end-line="138" selection-end-column="8" />
             </state>
           </provider>
         </entry>
@@ -83,10 +88,10 @@
         <option value="$PROJECT_DIR$/test-data/fields.json" />
         <option value="$PROJECT_DIR$/lib/CatalogSolr.js" />
         <option value="$PROJECT_DIR$/.gitignore" />
-        <option value="$PROJECT_DIR$/package.json" />
         <option value="$PROJECT_DIR$/generate-datacrates.js" />
         <option value="$PROJECT_DIR$/config.json" />
         <option value="$PROJECT_DIR$/commit-to-solr.js" />
+        <option value="$PROJECT_DIR$/package.json" />
       </list>
     </option>
   </component>
@@ -195,7 +200,7 @@
       <option name="presentableId" value="Default" />
       <updated>1558421147646</updated>
       <workItem from="1558421149207" duration="30478000" />
-      <workItem from="1558654598476" duration="76397000" />
+      <workItem from="1558654598476" duration="77898000" />
     </task>
     <servers />
   </component>
@@ -232,19 +237,19 @@
     </history-entry>
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="106875000" />
+    <option name="totallyTimeSpent" value="108376000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="1441" y="-277" width="1920" height="1177" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.15654951" />
+      <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.15654951" />
       <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
       <window_info id="Favorites" order="2" side_tool="true" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" />
-      <window_info anchor="bottom" id="Run" order="2" weight="0.32866243" />
-      <window_info active="true" anchor="bottom" id="Debug" order="3" visible="true" weight="0.28847927" />
+      <window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.3281106" />
+      <window_info anchor="bottom" id="Debug" order="3" weight="0.28847927" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" />
@@ -287,13 +292,6 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/package.json">
-      <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="330">
-          <caret line="22" selection-start-line="22" selection-end-line="22" />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/test/catalog.spec.js">
       <provider selected="true" editor-type-id="text-editor">
         <state relative-caret-position="-1761">
@@ -352,15 +350,22 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/lib/CatalogSolr.js">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="452">
-          <caret line="131" column="49" selection-start-line="131" selection-start-column="34" selection-end-line="131" selection-end-column="49" />
+        <state relative-caret-position="125">
+          <caret line="37" lean-forward="true" selection-start-line="37" selection-end-line="37" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/commit-to-solr.js">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="606">
-          <caret line="184" column="16" lean-forward="true" selection-start-line="184" selection-start-column="16" selection-end-line="184" selection-end-column="16" />
+        <state relative-caret-position="112">
+          <caret line="138" column="8" lean-forward="true" selection-start-line="138" selection-start-column="8" selection-end-line="138" selection-end-column="8" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/package.json">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="300">
+          <caret line="20" column="25" selection-start-line="20" selection-start-column="25" selection-end-line="20" selection-end-column="25" />
         </state>
       </provider>
     </entry>
diff --git a/commit-to-solr.js b/commit-to-solr.js
index 4aab2f5f2dd7782afba3106fae5c97774bf19928..8a3b6d5e4a4910c30a51d91e518eaa40f78cacf2 100644
--- a/commit-to-solr.js
+++ b/commit-to-solr.js
@@ -131,56 +131,7 @@ function catalogToArray(recs) {
   return catalogs;
 }
 
-function batchIt(b) {
-  b.map(async (p, index) => {
-    try {
-      if (logLevel >= 4) console.log(`Using: ${Math.round(process.memoryUsage().rss / 1024 / 1024 * 100) / 100} MBs`);
-      records = entries(sourcePath, p);
-      catalogs = catalogToArray(records);
-      records = null;
-      let update = await updateDocs(solrUpdate, catalogs);
-      catalogs = null;
-      p = null;
-      console.log(`batch ${index} of ${batch.length} : Update docs`);
-      if (waitPeriod) {
-        const waited = await sleep(waitPeriod);
-      }
-    } catch (e) {
-      console.log(e);
-    }
-  });
-  commitDocs(solrUpdate, '?commit=true&overwrite=true').then(() => {
-    console.log('solr commit');
-    return Promise.resolve();
-  }).catch((err) => {
-    return Promise.reject(err);
-  });
-}
-
-function reduceIt(b){
-  b.reduce((promise, p, index) => {
-    return promise.then(() => {
-      if (logLevel >= 4) console.log(`Using: ${Math.round(process.memoryUsage().rss / 1024 / 1024 * 100) / 100} MBs`);
-      const records = entries(sourcePath, p);
-      const catalogs = catalogToArray(records);
-      return updateDocs(solrUpdate, catalogs).then(async () => {
-        if (waitPeriod) {
-          const waited = await sleep(waitPeriod);
-        }
-        console.log(`batch ${index} of ${batch.length} : Update docs`);
-        if (index >= b.length - 1) {
-          console.log('run commit');
-          return commitDocs(solrUpdate,'?commit=true&overwrite=true').then(() => {
-            return Promise.resolve();
-          });
-        }
-        return Promise.resolve();
-      });
-    }).catch((e) => {
-      console.log(e);
-    })
-  }, Promise.resolve());
-}
+// MAIN APP
 
 let dirs = null;
 if (fs.existsSync(sourcePath)) {
@@ -192,11 +143,28 @@ if (fs.existsSync(sourcePath)) {
 
 const batch = _.chunk(dirs, batchNum);
 dirs = null;
-let records = [];
-let catalogs = [];
 
-//batchIt(batch);
-reduceIt(batch);
+batch.reduce((promise, p, index) => {
+  return promise.then(() => {
+    if (logLevel >= 4) console.log(`Using: ${Math.round(process.memoryUsage().rss / 1024 / 1024 * 100) / 100} MBs`);
+    const records = entries(sourcePath, p);
+    const catalogs = catalogToArray(records);
+    return updateDocs(solrUpdate, catalogs).then(async () => {
+      if (waitPeriod) {
+        const waited = await sleep(waitPeriod);
+      }
+      console.log(`batch ${index} of ${batch.length} : Update docs`);
+      if (index >= batch.length - 1) {
+        console.log('run commit');
+        return commitDocs(solrUpdate, '?commit=true&overwrite=true').then(() => {
+          return Promise.resolve();
+        });
+      }
+      return Promise.resolve();
+    });
+  }).catch((e) => {
+    console.log(e);
+  })
+}, Promise.resolve());
 
-if (logLevel >= 4) console.log(`Using: ${Math.round(process.memoryUsage().rss / 1024 / 1024 * 100) / 100} MBs`);
 
diff --git a/package.json b/package.json
index 0c3dce3d588fee82bee8caca4b29e24483000582..8f4506677d8c41265dacfb74cd942c6cc8fa8fd2 100644
--- a/package.json
+++ b/package.json
@@ -19,8 +19,6 @@
     "datacrate": "git+https://code.research.uts.edu.au/eresearch/datacrate.git#random_as_library",
     "fs-extra": "^8.0.1",
     "lodash": "^4.17.11",
-    "request": "^2.88.0",
-    "request-promise": "^4.2.4",
     "yargs": "^13.2.4"
   },
   "devDependencies": {