diff --git a/src/store/index.js b/src/store/index.js
index ea1e9b3..44b8ded 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -6,7 +6,6 @@
 import LdapStore from './modules/AccessControl/LdapStore';
 import LocalUserManagementStore from './modules/AccessControl/LocalUserMangementStore';
 import SslCertificatesStore from './modules/AccessControl/SslCertificatesStore';
-import OverviewStore from './modules/Overview/OverviewStore';
 import FirmwareStore from './modules/Configuration/FirmwareStore';
 import BootSettingsStore from './modules/Control/BootSettingsStore';
 import ControlStore from './modules/Control/ControlStore';
@@ -30,7 +29,6 @@
     authentication: AuthenticationStore,
     ldap: LdapStore,
     localUsers: LocalUserManagementStore,
-    overview: OverviewStore,
     firmware: FirmwareStore,
     hostBootSettings: BootSettingsStore,
     controls: ControlStore,
diff --git a/src/store/modules/Configuration/FirmwareStore.js b/src/store/modules/Configuration/FirmwareStore.js
index cae74eb..5ec9173 100644
--- a/src/store/modules/Configuration/FirmwareStore.js
+++ b/src/store/modules/Configuration/FirmwareStore.js
@@ -3,18 +3,14 @@
 const FirmwareStore = {
   namespaced: true,
   state: {
-    bmcFirmwareVersion: '--',
-    hostFirmwareVersion: '--'
+    bmcFirmwareVersion: '--'
   },
   getters: {
-    bmcFirmwareVersion: state => state.bmcFirmwareVersion,
-    hostFirmwareVersion: state => state.hostFirmwareVersion
+    bmcFirmwareVersion: state => state.bmcFirmwareVersion
   },
   mutations: {
     setBmcFirmwareVersion: (state, bmcFirmwareVersion) =>
-      (state.bmcFirmwareVersion = bmcFirmwareVersion),
-    setHostFirmwareVersion: (state, hostFirmwareVersion) =>
-      (state.hostFirmwareVersion = hostFirmwareVersion)
+      (state.bmcFirmwareVersion = bmcFirmwareVersion)
   },
   actions: {
     async getBmcFirmware({ commit }) {
@@ -27,17 +23,6 @@
         .catch(error => {
           console.log(error);
         });
-    },
-    async getHostFirmware({ commit }) {
-      return await api
-        .get('/redfish/v1/Systems/system')
-        .then(response => {
-          const hostFirmwareVersion = response.data.BiosVersion;
-          commit('setHostFirmwareVersion', hostFirmwareVersion);
-        })
-        .catch(error => {
-          console.log(error);
-        });
     }
   }
 };
diff --git a/src/store/modules/Health/SystemStore.js b/src/store/modules/Health/SystemStore.js
index 9c4c477..828b78b 100644
--- a/src/store/modules/Health/SystemStore.js
+++ b/src/store/modules/Health/SystemStore.js
@@ -13,9 +13,11 @@
       const system = {};
       system.assetTag = data.AssetTag;
       system.description = data.Description;
+      system.firmwareVersion = data.BiosVersion;
       system.health = data.Status.Health;
       system.id = data.Id;
       system.indicatorLed = data.IndicatorLED;
+      system.manufacturer = data.Manufacturer;
       system.model = data.Model;
       system.partNumber = data.PartNumber;
       system.powerState = data.PowerState;
diff --git a/src/store/modules/Overview/OverviewStore.js b/src/store/modules/Overview/OverviewStore.js
deleted file mode 100644
index 314728c..0000000
--- a/src/store/modules/Overview/OverviewStore.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import api from '../../api';
-
-const OverviewStore = {
-  namespaced: true,
-  state: {
-    serverInfo: null,
-    serverModel: '--',
-    serverManufacturer: '--',
-    serverSerialNumber: '--'
-  },
-  getters: {
-    serverInfo: state => state.serverInfo,
-    serverModel: state => state.serverModel,
-    serverManufacturer: state => state.serverManufacturer,
-    serverSerialNumber: state => state.serverSerialNumber
-  },
-  mutations: {
-    setServerInfo: (state, serverInfo) => (state.serverInfo = serverInfo),
-    setServerModel: (state, serverModel) => (state.serverModel = serverModel),
-    setServerManufacturer: (state, serverManufacturer) =>
-      (state.serverManufacturer = serverManufacturer),
-    setServerSerialNumber: (state, serverSerialNumber) =>
-      (state.serverSerialNumber = serverSerialNumber)
-  },
-  actions: {
-    async getServerInfo({ commit }) {
-      return await api
-        .get('/redfish/v1/Systems/system')
-        .then(response => {
-          const serverInfo = response.data;
-          if (serverInfo.Model) {
-            commit('setServerModel', serverInfo.Model);
-          }
-          if (serverInfo.SerialNumber) {
-            commit('setServerSerialNumber', serverInfo.SerialNumber);
-          }
-          if (serverInfo.Manufacturer) {
-            commit('setServerManufacturer', serverInfo.Manufacturer);
-          }
-        })
-        .catch(error => {
-          console.log(error);
-        });
-    }
-  }
-};
-
-export default OverviewStore;
diff --git a/src/views/Overview/Overview.vue b/src/views/Overview/Overview.vue
index 59b5063..fa7f524 100644
--- a/src/views/Overview/Overview.vue
+++ b/src/views/Overview/Overview.vue
@@ -105,13 +105,22 @@
   },
   mixins: [LoadingBarMixin],
   computed: mapState({
-    serverModel: state => state.overview.serverModel,
-    serverManufacturer: state => state.overview.serverManufacturer,
-    serverSerialNumber: state => state.overview.serverSerialNumber,
-    hostFirmwareVersion: state => state.firmware.hostFirmwareVersion,
+    server: state => state.system.systems[0],
     bmcFirmwareVersion: state => state.firmware.bmcFirmwareVersion,
     powerCapValue: state => state.powerControl.powerCapValue,
-    powerConsumptionValue: state => state.powerControl.powerConsumptionValue
+    powerConsumptionValue: state => state.powerControl.powerConsumptionValue,
+    serverManufacturer() {
+      return this.server ? this.server.manufacturer : '--';
+    },
+    serverModel() {
+      return this.server ? this.server.model : '--';
+    },
+    serverSerialNumber() {
+      return this.server ? this.server.serialNumber : '--';
+    },
+    hostFirmwareVersion() {
+      return this.server ? this.server.firmwareVersion : '--';
+    }
   }),
   created() {
     this.startLoader();
@@ -125,9 +134,8 @@
       this.$root.$on('overview::events::complete', () => resolve());
     });
     Promise.all([
-      this.$store.dispatch('overview/getServerInfo'),
+      this.$store.dispatch('system/getSystem'),
       this.$store.dispatch('firmware/getBmcFirmware'),
-      this.$store.dispatch('firmware/getHostFirmware'),
       this.$store.dispatch('powerControl/getPowerControl'),
       quicklinksPromise,
       networkPromise,
