diff --git a/src/app/instances/ns-instances/NSInstancesComponent.ts b/src/app/instances/ns-instances/NSInstancesComponent.ts
index 5cc5519..e7de4a7 100644
--- a/src/app/instances/ns-instances/NSInstancesComponent.ts
+++ b/src/app/instances/ns-instances/NSInstancesComponent.ts
@@ -144,9 +144,13 @@
     /** Generate smart table row title and filters @public  */
     public generateTableColumn(): void {
         this.columnList = {
-            name: { title: this.translateService.instant('NAME'), width: '15%', sortDirection: 'asc' },
+            name: { title: this.translateService.instant('NAME'), width: '15%' },
             identifier: { title: this.translateService.instant('IDENTIFIER'), width: '20%' },
             NsdName: { title: this.translateService.instant('NSDNAME'), width: '15%' },
+            'create-time': {
+                title: this.translateService.instant('DATE'), width: '15%', sortDirection: 'desc',
+                compareFunction: this.sharedService.compareFunction
+            },
             OperationalStatus: {
                 title: this.translateService.instant('OPERATIONALSTATUS'), width: '10%', type: 'html',
                 filter: {
@@ -244,7 +248,8 @@
                     nsd: nsdInstanceData.nsd,
                     'nsd-id': nsdInstanceData['nsd-id'],
                     vcaStatus: nsdInstanceData.vcaStatus,
-                    constituent: nsdInstanceData['constituent-vnfr-ref']
+                    constituent: nsdInstanceData['constituent-vnfr-ref'],
+                    'create-time': this.sharedService.convertEpochTime(Number(nsdInstanceData['create-time']))
                 };
                 this.nsInstanceData.push(nsDataObj);
             });
diff --git a/src/app/instances/ns-topology/NSTopologyComponent.html b/src/app/instances/ns-topology/NSTopologyComponent.html
index d500535..084f90e 100644
--- a/src/app/instances/ns-topology/NSTopologyComponent.html
+++ b/src/app/instances/ns-topology/NSTopologyComponent.html
@@ -113,7 +113,7 @@
                                 </tr>
                                 <tr>
                                     <td>Vnfd Id</td>
-                                    <td>{{(vnfr.vnfdID)?vnfr.vnfdID:'-'}}</td>
+                                    <td>{{(vnfr.vnfdId)?vnfr.vnfdId:'-'}}</td>
                                 </tr>
                                 <tr>
                                     <td>Member index</td>
diff --git a/src/app/instances/pdu-instances/PDUInstancesComponent.ts b/src/app/instances/pdu-instances/PDUInstancesComponent.ts
index 5c25279..6a2ca34 100644
--- a/src/app/instances/pdu-instances/PDUInstancesComponent.ts
+++ b/src/app/instances/pdu-instances/PDUInstancesComponent.ts
@@ -124,10 +124,13 @@
     public generateTableColumn(): void {
         this.columnList = {
             identifier: { title: this.translateService.instant('IDENTIFIER'), width: '25%' },
-            name: { title: this.translateService.instant('NAME'), width: '20%', sortDirection: 'asc' },
+            name: { title: this.translateService.instant('NAME'), width: '20%' },
             type: { title: this.translateService.instant('TYPE'), width: '15%' },
             usageState: { title: this.translateService.instant('USAGESTATE'), width: '15%' },
-            CreatedAt: { title: this.translateService.instant('CREATEDAT'), width: '15%' },
+            CreatedAt: {
+                title: this.translateService.instant('CREATEDAT'), width: '15%', sortDirection: 'desc',
+                compareFunction: this.sharedService.compareFunction
+            },
             Actions: {
                 name: 'Action', width: '10%', filter: false, sort: false, type: 'custom',
                 title: this.translateService.instant('ACTIONS'),
diff --git a/src/app/instances/vnf-instances/VNFInstancesComponent.ts b/src/app/instances/vnf-instances/VNFInstancesComponent.ts
index 90bb6fe..c27384d 100644
--- a/src/app/instances/vnf-instances/VNFInstancesComponent.ts
+++ b/src/app/instances/vnf-instances/VNFInstancesComponent.ts
@@ -118,7 +118,7 @@
     /** Generate smart table row title and filters @public  */
     public generateTableColumn(): void {
         this.columnList = {
-            identifier: { title: this.translateService.instant('IDENTIFIER'), width: '25%', sortDirection: 'asc' },
+            identifier: { title: this.translateService.instant('IDENTIFIER'), width: '25%' },
             VNFD: {
                 title: this.translateService.instant('VNFD'), width: '20%', type: 'custom',
                 valuePrepareFunction: (cell: VNFInstanceData, row: VNFInstanceData): VNFInstanceData => row,
@@ -126,7 +126,10 @@
             },
             MemberIndex: { title: this.translateService.instant('MEMBERINDEX'), width: '15%' },
             NS: { title: this.translateService.instant('NS'), width: '20%' },
-            CreatedAt: { title: this.translateService.instant('CREATEDAT'), width: '15%' },
+            CreatedAt: {
+                title: this.translateService.instant('CREATEDAT'), width: '15%', sortDirection: 'desc',
+                compareFunction: this.sharedService.compareFunction
+            },
             Actions: {
                 name: 'Action', width: '5%', filter: false, sort: false, type: 'custom',
                 title: this.translateService.instant('ACTIONS'),
diff --git a/src/app/users/user-details/UserDetailsComponent.ts b/src/app/users/user-details/UserDetailsComponent.ts
index 12c37fe..c56f43a 100644
--- a/src/app/users/user-details/UserDetailsComponent.ts
+++ b/src/app/users/user-details/UserDetailsComponent.ts
@@ -252,8 +252,8 @@
       projects: userData.projectListName,
       identifier: userData._id,
       user_status: userData._admin.user_status,
-      account_expire_time: this.sharedService.convertEpochTime(!isNullOrUndefined(userData._admin) ?
-        userData._admin.account_expire_time : null)
+      account_expire_time: (!isNullOrUndefined(userData._admin) && !isNullOrUndefined(userData._admin.account_expire_time)) ? this.sharedService.convertEpochTime(
+        userData._admin.account_expire_time) : 'N/A'
     };
     this.userData.push(userDataObj);
   }
diff --git a/src/app/vim-accounts/Resources-Overview/ResourcesOverviewComponent.ts b/src/app/vim-accounts/Resources-Overview/ResourcesOverviewComponent.ts
index 11d48d7..eb7c8bc 100644
--- a/src/app/vim-accounts/Resources-Overview/ResourcesOverviewComponent.ts
+++ b/src/app/vim-accounts/Resources-Overview/ResourcesOverviewComponent.ts
@@ -62,6 +62,9 @@
     @Input() public resourcesData: VimAccountDetails;
     /** Resources data for generating chart @public */
     public chartData: RESOURCESDATA[] = [];
+    /** Count of decimalPoints @private */
+    // eslint-disable-next-line @typescript-eslint/no-magic-numbers
+    private decimalPoints: number = 2;
     constructor(injector: Injector) {
         this.injector = injector;
         this.translateService = this.injector.get(TranslateService);
@@ -115,9 +118,9 @@
             let usedColor: string = RANGECOLOR.used;
             // eslint-disable-next-line security/detect-object-injection
             const getValuesUsedFree: number[] = Object.values(compute[key]);
-            const total: number = key === keyValidate ? getValuesUsedFree[0] / CONSTANTNUMBER.oneGB : getValuesUsedFree[0];
-            const used: number = key === keyValidate ? getValuesUsedFree[1] / CONSTANTNUMBER.oneGB : getValuesUsedFree[1];
-            const remaining: number = total - used;
+            const total: number = key === keyValidate ? Number((getValuesUsedFree[0] / CONSTANTNUMBER.oneGB).toFixed(this.decimalPoints)) : Number((getValuesUsedFree[0]).toFixed(this.decimalPoints));
+            const used: number = key === keyValidate ? Number((getValuesUsedFree[1] / CONSTANTNUMBER.oneGB).toFixed(this.decimalPoints)) : Number((getValuesUsedFree[1]).toFixed(this.decimalPoints));
+            const remaining: number = Number((total - used).toFixed(this.decimalPoints));
             const usedPercentage: number = (used / total) * range.percentage;
             if (usedPercentage >= range.nearlyFull && usedPercentage < range.full) {
                 usedColor = RANGECOLOR.nearlyfull;
@@ -125,7 +128,7 @@
             if (usedPercentage === range.full) {
                 usedColor = RANGECOLOR.full;
             }
-            getData.push(this.generateChartData(key, { total, used, remaining }, [usedColor, '#b9bcc3'] ));
+            getData.push(this.generateChartData(key, { total, used, remaining }, [usedColor, '#b9bcc3']));
         });
         return getData;
     }
@@ -140,8 +143,10 @@
             // eslint-disable-next-line security/detect-object-injection
             title: CONFIGRESOURCESTITLE[setTitle],
             values: this.generateChartDataValues(setValues.total, setValues.used, setValues.remaining),
-            data: [{data: [setValues.used, setValues.remaining], backgroundColor: setColor,
-                 hoverBackgroundColor: setColor, hoverBorderColor: setColor}]
+            data: [{
+                data: [setValues.used, setValues.remaining], backgroundColor: setColor,
+                hoverBackgroundColor: setColor, hoverBorderColor: setColor
+            }]
         };
     }
     /**
