diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/DesignerCreationMode.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/DesignerCreationMode.ts
index adae662..61de507 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/DesignerCreationMode.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/creationModes/DesignerCreationMode.ts
@@ -43,7 +43,7 @@
             });
         }
 
-        const filenameEntry = 'Definitions/' + cbaPackage.metaData.name + '.json';
+        const filenameEntry = 'Definitions/' + cbaPackage.metaData.name.trim() + '.json';
         const vlbDefinition: VlbDefinition = new VlbDefinition();
         const metadata: Metadata = new Metadata();
 
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation-extraction.service.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation-extraction.service.ts
index 232590c..f44f688 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation-extraction.service.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/package-creation/package-creation-extraction.service.ts
@@ -42,7 +42,7 @@
                             if (filename.includes('TOSCA-Metadata/')) {
 
                                 const metaDataTabInfo: MetaDataTabModel = this.getMetaDataTabInfo(fileData);
-                                packageName = metaDataTabInfo.name;
+                                packageName = metaDataTabInfo.name.trim();
                                 this.setMetaData(metaDataTabInfo);
                                 console.log('found file ' + packageName);
                             }
@@ -145,7 +145,7 @@
             map.set(currentKey, currentValue);
         }
         metaDataTabModel.entryFileName = map.get(this.toscaMetaDataKeys[3]);
-        metaDataTabModel.name = map.get(this.toscaMetaDataKeys[4]);
+        metaDataTabModel.name = map.get(this.toscaMetaDataKeys[4]).trim();
         metaDataTabModel.version = map.get(this.toscaMetaDataKeys[5]).trim();
         metaDataTabModel.mode = map.get(this.toscaMetaDataKeys[6]);
         if (map.get(this.toscaMetaDataKeys[7])) {
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/import-package/import-package.component.html b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/import-package/import-package.component.html
index d578582..0632fb4 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/import-package/import-package.component.html
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/import-package/import-package.component.html
@@ -49,6 +49,10 @@
                     Import&Save
                 </button>
                 <button type="button" class="btn btn-sm btn-primary" [disabled]="uploadedFiles?.length<=0"
+                        data-dismiss="modal" (click)="importAndDeploy()">
+                    Import&Deploy
+                </button>
+                <button type="button" class="btn btn-sm btn-primary" [disabled]="uploadedFiles?.length<=0"
                         data-dismiss="modal" (click)="importPackageAndViewIt()">
                     Import
                 </button>
diff --git a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/import-package/import-package.component.ts b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/import-package/import-package.component.ts
index 7496338..5797d18 100644
--- a/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/import-package/import-package.component.ts
+++ b/cds-ui/designer-client/src/app/modules/feature-modules/packages/packages-dashboard/import-package/import-package.component.ts
@@ -123,4 +123,23 @@
             });
         });
     }
+
+    importAndDeploy() {
+        const file = this.getFile(this.uploadedFiles[this.uploadedFiles.length - 1]);
+        this.zipFile = new JSZip();
+        this.zipFile.loadAsync(file).then(zip => {
+            this.zipFile = zip;
+            console.log(this.zipFile);
+            this.resetTheUploadedFiles();
+            this.zipFile.generateAsync({type: 'blob'}).then(blob => {
+                this.packageCreationService.deploy(blob).subscribe(
+                    bluePrintDetailModels => {
+                        this.toastService.info('package is imported and deployed successfully ');
+                        this.router.navigate(['/packages']);
+                        this.packagesStore.getAll();
+                    }, error =>
+                        this.toastService.error('there is an error happened ' + error));
+            });
+        });
+    }
 }
