diff --git a/src/index.js b/src/index.js
index ebdb0e694d28a87c07f4e2cefcbf7ab16f8ff7f4..e2dfe0f6509b8b3055cb2397eb0fdad1c7c69856 100644
--- a/src/index.js
+++ b/src/index.js
@@ -31,10 +31,9 @@ let basePackageJson;
 github.init(token, repoName, config.baseBranch, config.verbose).then(() => {
   // Get the base package.json
   return github.getFileContents(packageFile);
-}).then((packageContents) => {
-  // Get the list of possible upgrades
-  return npm.getAllDependencyUpgrades(packageContents);
-}).then((upgrades) => {
+})
+.then(npm.getAllDependencyUpgrades)
+.then((upgrades) => {
   if (config.verbose) {
     console.log('All upgrades: ' + JSON.stringify(upgrades));
   }
diff --git a/src/npm.js b/src/npm.js
index c54276b4a0abee4ca702da3c15395cb0871871cd..10f24c976568cfdb006bd12e166d92dae3e25238 100644
--- a/src/npm.js
+++ b/src/npm.js
@@ -22,35 +22,10 @@ module.exports = {
     });
     return allDependencies;
   },
-
-  getDependencyUpgrades: function(depName, currentVersion) {
-    return getDependency(depName)
-    .then(res => {
-      let allUpgrades = {};
-      if (!res.body['versions']) {
-        console.log(depName + ' versions is null');
-      }
-      Object.keys(res.body['versions']).forEach(function(version) {
-        if (stable.is(currentVersion) && !stable.is(version)) {
-          // Ignore unstable versions, unless the current version is unstable
-          return;
-        }
-        if (semver.gt(version, currentVersion)) {
-          // Group by major versions
-          var thisMajor = semver.major(version);
-          if (!allUpgrades[thisMajor] || semver.gt(version, allUpgrades[thisMajor])) {
-            allUpgrades[thisMajor] = version;
-          }
-        }
-      });
-      return allUpgrades;
-    });
-  },
   getAllDependencyUpgrades: function(packageContents) {
     const allDependencyChecks = [];
     const allDependencyUpgrades = [];
     const dependencyTypes = ['dependencies', 'devDependencies'];
-    const getDependencyUpgrades = this.getDependencyUpgrades;
     dependencyTypes.forEach(function(depType) {
       if (!packageContents[depType]) {
         return;
@@ -90,3 +65,27 @@ function getDependency(depName) {
   // supports scoped packages, e.g. @user/package
   return got(`https://registry.npmjs.org/${depName.replace('/', '%2F')}`, { json: true });
 }
+
+function getDependencyUpgrades(depName, currentVersion) {
+  return getDependency(depName)
+  .then(res => {
+    let allUpgrades = {};
+    if (!res.body['versions']) {
+      console.log(depName + ' versions is null');
+    }
+    Object.keys(res.body['versions']).forEach(function(version) {
+      if (stable.is(currentVersion) && !stable.is(version)) {
+        // Ignore unstable versions, unless the current version is unstable
+        return;
+      }
+      if (semver.gt(version, currentVersion)) {
+        // Group by major versions
+        var thisMajor = semver.major(version);
+        if (!allUpgrades[thisMajor] || semver.gt(version, allUpgrades[thisMajor])) {
+          allUpgrades[thisMajor] = version;
+        }
+      }
+    });
+    return allUpgrades;
+  });
+}