diff --git a/lib/index.js b/lib/index.js
index 3a1b131..8a26121 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -4,11 +4,11 @@ const sb2 = require('./sb2');
 const sb3 = require('./sb3');
 
 module.exports = function (buffer, callback) {
-    parser(buffer, false, (err, project) => {
+    parser(buffer, false, (err, result) => {
         if (err) return callback(err);
 
-        // Flatten array
-        project = project[0];
+        // Extract only the project object from the parser results
+        const project = result[0];
 
         // Push project object to the appropriate analysis handler
         switch (project.projectVersion) {
@@ -18,8 +18,6 @@ module.exports = function (buffer, callback) {
         case 3:
             sb3(project, callback);
             break;
-        default:
-            throw new Error('Unsupported project version');
         }
     });
 };
diff --git a/lib/sb2.js b/lib/sb2.js
index 73ae754..4831957 100644
--- a/lib/sb2.js
+++ b/lib/sb2.js
@@ -139,12 +139,12 @@ const blocks = function (project) {
  */
 const extensions = function (project) {
     const result = {count: 0, id: []};
+    const ext = project.info.savedExtensions;
 
     // Check to ensure project includes any extensions
-    if (typeof project.info.savedExtensions === 'undefined') return result;
+    if (typeof ext === 'undefined') return result;
 
     // Iterate over extensions and build list
-    var ext = project.info.savedExtensions;
     for (let i in ext) {
         result.id.push(ext[i].extensionName);
     }
diff --git a/lib/sb3.js b/lib/sb3.js
index ba7b9db..b9c910c 100644
--- a/lib/sb3.js
+++ b/lib/sb3.js
@@ -2,35 +2,35 @@ const utility = require('./utility');
 
 const scripts = function (targets) {
     // Storage objects
-    let occurances = 0;
+    let occurrences = 0;
 
     // Iterate over all blocks in each target, and look for "top level" blocks
     for (let t in targets) {
         for (let b in targets[t].blocks) {
-            if (targets[t].blocks[b].topLevel) occurances++;
+            if (targets[t].blocks[b].topLevel) occurrences++;
         }
     }
 
     return {
-        count: occurances
+        count: occurrences
     };
 };
 
 const variables = function (targets, attribute) {
     // Storage objects
-    let occurances = 0;
+    let occurrences = 0;
     let idList = [];
 
     for (let t in targets) {
         for (let a in targets[t][attribute]) {
             const variable = targets[t][attribute][a];
-            occurances++;
+            occurrences++;
             idList.push(variable[0]);
         }
     }
 
     return {
-        count: occurances,
+        count: occurrences,
         id: idList
     };
 };
@@ -38,20 +38,20 @@ const variables = function (targets, attribute) {
 // Iterate over targets, extract attribute, and aggregate results
 const extract = function (targets, attribute, id, hash) {
     // Storage objects
-    let occurances = 0;
+    let occurrences = 0;
     let idList = [];
     let hashList = [];
 
     for (let t in targets) {
         for (let a in targets[t][attribute]) {
             const asset = targets[t][attribute][a];
-            occurances++;
+            occurrences++;
             if (typeof id !== 'undefined') idList.push(asset[id]);
             if (typeof hash !== 'undefined') hashList.push(asset[hash]);
         }
     }
 
-    const result = {count: occurances};
+    const result = {count: occurrences};
     if (typeof id !== 'undefined') result.id = idList;
     if (typeof hash !== 'undefined') result.hash = hashList;
     return result;