diff --git a/package.json b/package.json
index 715c5143a7b6748a0835dd15ec4bccab7303d94d..20d8ebadbf7d5967bbb33798db09a073b863fbbe 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,7 @@
 {
   "name": "zap",
   "version": "0.99.1",
+  "featureLevel": 1,
   "description": "Configuration tool for the Zigbee Cluster Library",
   "productName": "zap",
   "cordovaId": "",
diff --git a/src-electron/generator/generation-engine.js b/src-electron/generator/generation-engine.js
index 683c74f1ed3600f7b9f2e037840de40e0b635c37..d11579ecc879208cb5ceffab08eaf5f7f8ee5013 100644
--- a/src-electron/generator/generation-engine.js
+++ b/src-electron/generator/generation-engine.js
@@ -349,7 +349,7 @@ function writeFile(fileName, content, doBackup) {
 function generateGenerationContent(genResult) {
   var out = {
     writeTime: new Date().toString(),
-    featureLevel: env.featureLevel,
+    featureLevel: env.zapVersion().featureLevel,
     creator: 'zap',
     content: [],
   }
diff --git a/src-electron/importexport/export.js b/src-electron/importexport/export.js
index 9e7b4d697d12f69f701bf361ea1372d65e6a74ba..4fef336d0f40f19734e4e55973d8e4be4e2024bc 100644
--- a/src-electron/importexport/export.js
+++ b/src-electron/importexport/export.js
@@ -172,7 +172,7 @@ function createStateFromDatabase(db, sessionId) {
   return new Promise((resolve, reject) => {
     var state = {
       writeTime: new Date().toString(),
-      featureLevel: env.featureLevel,
+      featureLevel: env.zapVersion().featureLevel,
       creator: 'zap',
     }
     var promises = []
diff --git a/src-electron/importexport/import.js b/src-electron/importexport/import.js
index 0a78874fb78062c24e16ea194607f45b0282acd7..53c5f72bb4f294dbdd343bd5638d6b627b8f75ac 100644
--- a/src-electron/importexport/import.js
+++ b/src-electron/importexport/import.js
@@ -235,9 +235,11 @@ function readDataFromFile(filePath) {
       if (!('featureLevel' in state)) {
         state.featureLevel = 0
       }
-      if (state.featureLevel > env.featureLevel) {
+      if (state.featureLevel > env.zapVersion().featureLevel) {
         reject(
-          `File requires feature level ${state.featureLevel}, we only have ${env.featureLevel}. Please upgrade your zap!`
+          `File requires feature level ${state.featureLevel}, we only have ${
+            env.zapVersion().featureLevel
+          }. Please upgrade your zap!`
         )
       } else {
         resolve(state)
diff --git a/src-electron/util/args.js b/src-electron/util/args.js
index 1ac817e682a2e227acea842be8ac926a437adda6..aabd23b6bfbd6df472c0b3276bbc6a69407cdbe9 100644
--- a/src-electron/util/args.js
+++ b/src-electron/util/args.js
@@ -115,7 +115,7 @@ function processCommandLineArguments(argv) {
     })
     .usage('Usage: $0 <command> [options]')
     .version(
-      `Version: ${zapVersion.version}\nHash: ${zapVersion.hash}\nDate: ${zapVersion.date}`
+      `Version: ${zapVersion.version}\nFeature level: ${zapVersion.featureLevel}\nHash: ${zapVersion.hash}\nDate: ${zapVersion.date}`
     )
     .help()
     .alias({
diff --git a/src-electron/util/env.js b/src-electron/util/env.js
index cd0d6dbd4db9a303bbf5940aa1ffb5ae1a718d87..f701fe0d9fc67163a9576b481b4fab9dca59dd83 100644
--- a/src-electron/util/env.js
+++ b/src-electron/util/env.js
@@ -22,17 +22,6 @@ const pino = require('pino')
 const zapBaseUrl = 'http://localhost:'
 const zapUrlLog = 'zap.url'
 
-// Feature level:
-//    please increase this with care. Increasing this number means that
-//    when you save a.zap file, anyone with an older feature level will
-//    NOT BE ABLE to read it in. So use this only in cases of real
-//    file compatibility issues, where you are ok with forcing everyone
-//    else to upgrade.
-//    Do note, that zap should still ALWAYS be able to read in older
-//    files, so this only affects forward compatibility, not backwards compatibility.
-//
-const featureLevel = 1
-
 // Basic environment tie-ins
 var pino_logger = pino({
   name: 'zap',
@@ -103,16 +92,22 @@ function sqliteTestFile(id, deleteExistingFile = true) {
   return fileName
 }
 
+/**
+ * Returns the zap version.
+ *
+ * @returns zap version, which is an object that contains 'featureLevel', 'hash', 'timestamp' and 'date'
+ */
 function zapVersion() {
   if (versionObject == null) {
-    versionObject = {
-      featureLevel: featureLevel,
-    }
+    versionObject = {}
     try {
-      var { version } = require('../../package.json')
-      versionObject.version = version
-    } catch {
+      var p = require('../../package.json')
+      versionObject.version = p.version
+      versionObject.featureLevel = p.featureLevel
+    } catch (err) {
       logError('Could not retrieve version from package.json')
+      versionObject.featureLevel = 0
+      versionObject.version = '0.0.0'
     }
 
     try {
@@ -255,4 +250,3 @@ exports.logHttpServerUrl = logHttpServerUrl
 exports.urlLogFile = urlLogFile
 exports.baseUrl = baseUrl
 exports.versionsCheck = versionsCheck
-exports.featureLevel = featureLevel
diff --git a/test/env.test.js b/test/env.test.js
index 81a862ac2f260cd5b1917dae64c6b209977ec3b0..89a5c0783050b6266e6433aab4e684df9e822582 100644
--- a/test/env.test.js
+++ b/test/env.test.js
@@ -43,7 +43,7 @@ test('Versions check', () => {
 })
 
 test('Feature level', () => {
-  expect(env.featureLevel).toBeGreaterThan(0)
+  expect(env.zapVersion().featureLevel).toBeGreaterThan(0)
 })
 
 test('Version', () => {
diff --git a/test/importexport.test.js b/test/importexport.test.js
index 702bb455b8c8f5a143da2431734ed5ac7e77ef43..b2d657ea370e0562f85db12f44fee64a9aeecd60 100644
--- a/test/importexport.test.js
+++ b/test/importexport.test.js
@@ -100,7 +100,7 @@ test('Test file 1 import', () => {
     .then((state) => {
       var commandCount = 0
       var attributeCount = 0
-      expect(state.featureLevel).toBe(env.featureLevel)
+      expect(state.featureLevel).toBe(env.zapVersion().featureLevel)
       expect(state.endpointTypes.length).toBe(1)
       expect(state.endpointTypes[0].clusters.length).toBe(11)
       state.endpointTypes[0].clusters.forEach((c) => {