diff --git a/catalog-ui/src/app/app.ts b/catalog-ui/src/app/app.ts
index 8de2db9..d67f158 100644
--- a/catalog-ui/src/app/app.ts
+++ b/catalog-ui/src/app/app.ts
@@ -58,7 +58,7 @@
 import {Categories} from "./models/categories";
 import {IUserProperties} from "./models/user";
 import {SearchWithAutoCompleteComponent} from "./ng2/components/ui/search-with-autocomplete/search-with-autocomplete.component";
-import {DesignerFrameComponent} from "./ng2/components/ui/designer/designer-frame.component";
+import {PluginFrameComponent} from "./ng2/components/ui/plugin/plugin-frame.component";
 
 
 let moduleName:string = 'sdcApp';
@@ -153,7 +153,7 @@
         inputs: ['searchPlaceholder', 'searchBarClass', 'autoCompleteValues'],
         outputs: ['searchChanged', 'searchButtonClicked']
     }) as angular.IDirectiveFactory);
-angular.module('sdcApp').directive('designerFrame', downgradeComponent( {component: DesignerFrameComponent, inputs: ['designer', 'queryParams']} ) as angular.IDirectiveFactory);
+angular.module('sdcApp').directive('pluginFrame', downgradeComponent( {component: PluginFrameComponent, inputs: ['plugin', 'queryParams']} ) as angular.IDirectiveFactory);
 
 ng1appModule.config([
     '$stateProvider',
@@ -518,11 +518,11 @@
         );
 
         $stateProvider.state(
-            'workspace.designers', {
-                url: 'designers/*path',
+            'workspace.plugins', {
+                url: 'plugins/*path',
                 parent: 'workspace',
-                templateUrl: './view-models/workspace/tabs/designers/designers-tab-view.html',
-                controller: viewModelsModuleName + '.DesignersTabViewModel'
+                templateUrl: './view-models/workspace/tabs/plugins/plugins-context-view.html',
+                controller: viewModelsModuleName + '.PluginsContextViewModel'
             }
         );
 
@@ -544,10 +544,10 @@
         );
 
         $stateProvider.state(
-            'designers', {
-                url: '/designers/*path',
-                templateUrl: './view-models/designers/designers-view.html',
-                controller: viewModelsModuleName + '.DesignersViewModel'
+            'plugins', {
+                url: '/plugins/*path',
+                templateUrl: './view-models/plugins/plugins-tab-view.html',
+                controller: viewModelsModuleName + '.PluginsTabViewModel'
             }
         );
 
diff --git a/catalog-ui/src/app/models.ts b/catalog-ui/src/app/models.ts
index 4848fb5..ac26302 100644
--- a/catalog-ui/src/app/models.ts
+++ b/catalog-ui/src/app/models.ts
@@ -26,7 +26,7 @@
 export * from './models/additional-information';
 export * from './models/app-config';
 export * from './models/validation-config';
-export * from './models/designers-config';
+export * from './models/plugins-config';
 export * from './models/artifacts';
 export * from './models/aschema-property';
 export * from './models/schema-attribute';
diff --git a/catalog-ui/src/app/models/app-config.ts b/catalog-ui/src/app/models/app-config.ts
index 556603d..1f6682f 100644
--- a/catalog-ui/src/app/models/app-config.ts
+++ b/catalog-ui/src/app/models/app-config.ts
@@ -53,7 +53,7 @@
     GET_resource_artifact_types:string;
     GET_activity_log:string;
     GET_configuration_ui:string;
-    GET_designers_configuration:string;
+    GET_plugins_configuration:string;
     GET_service:string;
     GET_ecomp_menu_items:string;
     GET_service_validate_name:string;
diff --git a/catalog-ui/src/app/models/designers-config.ts b/catalog-ui/src/app/models/designers-config.ts
deleted file mode 100644
index b60e420..0000000
--- a/catalog-ui/src/app/models/designers-config.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-
-export class Designer {
-    designerId: string;
-    designerHost: string;
-    designerPort: string;
-    designerPath: string;
-    designerStateUrl: string;
-    designerProtocol: string;
-    designerDisplayOptions: Map<string, DesignerDisplayOptions>;
-}
-
-export class DesignerDisplayOptions {
-    displayName: string;
-    displayContext: Array<string>;
-}
-
-export type Designers = Array<Designer>;
-
-export class DesignersConfiguration {
-    static designers: Designers;
-}
diff --git a/catalog-ui/src/app/models/plugins-config.ts b/catalog-ui/src/app/models/plugins-config.ts
new file mode 100644
index 0000000..18782ec
--- /dev/null
+++ b/catalog-ui/src/app/models/plugins-config.ts
@@ -0,0 +1,21 @@
+
+export class Plugin {
+    pluginId: string;
+    pluginHost: string;
+    pluginPort: string;
+    pluginPath: string;
+    pluginStateUrl: string;
+    pluginProtocol: string;
+    pluginDisplayOptions: Map<string, PluginDisplayOptions>;
+}
+
+export class PluginDisplayOptions {
+    displayName: string;
+    displayContext: Array<string>;
+}
+
+export type Plugins = Array<Plugin>;
+
+export class PluginsConfiguration {
+    static plugins: Plugins;
+}
diff --git a/catalog-ui/src/app/modules/service-module.ts b/catalog-ui/src/app/modules/service-module.ts
index c2ee61e..87a435d 100644
--- a/catalog-ui/src/app/modules/service-module.ts
+++ b/catalog-ui/src/app/modules/service-module.ts
@@ -51,7 +51,7 @@
 import {ConnectionWizardService} from "../ng2/pages/connection-wizard/connection-wizard.service";
 import {ComponentInstanceServiceNg2} from "../ng2/services/component-instance-services/component-instance.service";
 import {UserService as UserServiceNg2} from "../ng2/services/user.service";
-import {DesignersService} from "../ng2/services/designers.service";
+import {PluginsService} from "../ng2/services/plugins.service";
 
 let moduleName:string = 'Sdc.Services';
 let serviceModule:ng.IModule = angular.module(moduleName, []);
@@ -96,4 +96,4 @@
 serviceModule.factory('ConnectionWizardServiceNg2', downgradeInjectable(ConnectionWizardService));
 serviceModule.factory('ComponentInstanceServiceNg2', downgradeInjectable(ComponentInstanceServiceNg2));
 serviceModule.factory('UserServiceNg2', downgradeInjectable(UserServiceNg2));
-serviceModule.factory('DesignersService', downgradeInjectable(DesignersService));
+serviceModule.factory('PluginsService', downgradeInjectable(PluginsService));
diff --git a/catalog-ui/src/app/modules/view-model-module.ts b/catalog-ui/src/app/modules/view-model-module.ts
index 321d039..a4f47ff 100644
--- a/catalog-ui/src/app/modules/view-model-module.ts
+++ b/catalog-ui/src/app/modules/view-model-module.ts
@@ -73,8 +73,8 @@
 import {HierarchyViewModel} from "../view-models/tabs/hierarchy/hierarchy-view-model";
 import {downgradeComponent} from "@angular/upgrade/static";
 import {ConformanceLevelModalViewModel} from "../view-models/modals/conformance-level-modal/conformance-level-modal-view-model";
-import {DesignersViewModel} from "../view-models/designers/designers-view-model";
-import {DesignersTabViewModel} from "../view-models/workspace/tabs/designers/designers-tab-view-model";
+import {PluginsTabViewModel} from "../view-models/plugins/plugins-tab-view-model";
+import {PluginsContextViewModel} from "../view-models/workspace/tabs/plugins/plugins-context-view-model";
 // import {NG2ExampleComponent} from "../ng2/view-ng2/ng2.example.component/ng2.example.component";
 // import {upgradeAdapter} from "../ng2/app.module";
 // import { UpgradeAdapter } from '@angular/upgrade';
@@ -137,8 +137,8 @@
   .controller(moduleName + '.ServiceInputsViewModel', ServiceInputsViewModel)
   .controller(moduleName + '.ReqAndCapabilitiesViewModel', ReqAndCapabilitiesViewModel)
   .controller(moduleName + '.InputFormViewModel', InputFormViewModel)
-  .controller(moduleName + '.DesignersViewModel', DesignersViewModel)
-  .controller(moduleName + '.DesignersTabViewModel', DesignersTabViewModel)
+  .controller(moduleName + '.PluginsTabViewModel', PluginsTabViewModel)
+  .controller(moduleName + '.PluginsContextViewModel', PluginsContextViewModel)
   //
   // //TABS
   .controller(moduleName + '.HierarchyViewModel', HierarchyViewModel);
diff --git a/catalog-ui/src/app/ng2/app.module.ts b/catalog-ui/src/app/ng2/app.module.ts
index 5cf4d80..a5a2fed 100644
--- a/catalog-ui/src/app/ng2/app.module.ts
+++ b/catalog-ui/src/app/ng2/app.module.ts
@@ -46,15 +46,15 @@
 import {SdcConfig} from "./config/sdc-config.config";
 import { TranslateModule } from "./shared/translator/translate.module";
 import { TranslationServiceConfig } from "./config/translation.service.config";
-import {DesignerFrameModule} from "./components/ui/designer/designer-frame.module";
-import {DesignersService} from "./services/designers.service";
+import {PluginFrameModule} from "./components/ui/plugin/plugin-frame.module";
+import {PluginsService} from "./services/plugins.service";
 
 export const upgradeAdapter = new UpgradeAdapter(forwardRef(() => AppModule));
 
 export function configServiceFactory(config:ConfigService) {
     return () => {
         config.loadValidationConfiguration();
-        config.loadDesignersConfiguration();
+        config.loadPluginsConfiguration();
     }
 }
 
@@ -75,7 +75,7 @@
         //We need to import them here since we use them in angular1
         ConnectionWizardModule,
         PropertiesAssignmentModule,
-        DesignerFrameModule
+        PluginFrameModule
     ],
     exports: [],
     entryComponents: [],
@@ -98,7 +98,7 @@
         SdcConfig,
         ComponentInstanceServiceNg2,
         TranslationServiceConfig,
-        DesignersService,
+        PluginsService,
         {
             provide: APP_INITIALIZER,
             useFactory: configServiceFactory,
diff --git a/catalog-ui/src/app/ng2/components/layout/top-nav/top-nav.component.ts b/catalog-ui/src/app/ng2/components/layout/top-nav/top-nav.component.ts
index 632b2be..5e43fec 100644
--- a/catalog-ui/src/app/ng2/components/layout/top-nav/top-nav.component.ts
+++ b/catalog-ui/src/app/ng2/components/layout/top-nav/top-nav.component.ts
@@ -24,7 +24,7 @@
 import {UserService} from "../../../services/user.service";
 import {SdcConfigToken, ISdcConfig} from "../../../config/sdc-config.config";
 import {TranslateService} from "../../../shared/translator/translate.service";
-import {DesignersConfiguration, Designer} from "app/models";
+import {PluginsConfiguration, Plugin} from "app/models";
 
 
 declare const window:any;
@@ -65,10 +65,10 @@
         //set result to current state
         this.topLvlMenu.menuItems.every((item:MenuItem, index:number)=> {
             if (item.state === this.$state.current.name) {
-                if (this.$state.current.name === 'designers') {
-                    const designerIdx = _.findIndex(DesignersConfiguration.designers, (designer: Designer) => designer.designerStateUrl === this.$state.params.path);
-                    if (designerIdx !== -1) {
-                        result = index + designerIdx;
+                if (this.$state.current.name === 'plugins') {
+                    const pluginIdx = _.findIndex(PluginsConfiguration.plugins, (plugin: Plugin) => plugin.pluginStateUrl === this.$state.params.path);
+                    if (pluginIdx !== -1) {
+                        result = index + pluginIdx;
                         return false;
                     }
                 } else {
@@ -121,9 +121,9 @@
                     }
                 });
 
-                _.each(DesignersConfiguration.designers, (designer: Designer) => {
-                    if (designer.designerDisplayOptions["top"]) {
-                        tmpArray.push(new MenuItem(designer.designerDisplayOptions["top"].displayName, null, "designers", "goToState", {path: designer.designerStateUrl}, null));
+                _.each(PluginsConfiguration.plugins, (plugin: Plugin) => {
+                    if (plugin.pluginDisplayOptions["top"]) {
+                        tmpArray.push(new MenuItem(plugin.pluginDisplayOptions["top"].displayName, null, "plugins", "goToState", {path: plugin.pluginStateUrl}, null));
                     }
                 })
             }
diff --git a/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.html b/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.html
deleted file mode 100644
index 752e49e..0000000
--- a/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<div class="designer-frame">
-    <div class="w-sdc-main-container">
-        <iframe class="designer-iframe" [src]="designerUrl | safeUrlSanitizer"></iframe>
-    </div>
-</div>
diff --git a/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.ts b/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.ts
deleted file mode 100644
index b52696a..0000000
--- a/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import {Component, OnInit, Input} from "@angular/core";
-import { URLSearchParams } from '@angular/http';
-import {Designer} from "app/models";
-
-@Component({
-    selector: 'designer-frame',
-    templateUrl: './designer-frame.component.html',
-    styleUrls:['designer-frame.component.less']
-})
-
-export class DesignerFrameComponent implements OnInit {
-
-    @Input() designer: Designer;
-    @Input() queryParams: Object;
-    designerUrl: string;
-    private urlSearchParams: URLSearchParams;
-
-    constructor() {
-        this.urlSearchParams = new URLSearchParams();
-    }
-
-    ngOnInit(): void {
-
-        this.designerUrl = this.designer.designerProtocol + "://" +
-            this.designer.designerHost + ":" +
-            this.designer.designerPort +
-            this.designer.designerPath;
-
-        if (this.queryParams && !_.isEmpty(this.queryParams)) {
-            _.forOwn(this.queryParams, (value, key) => {
-                this.urlSearchParams.set(key, value);
-            });
-
-            this.designerUrl += '?';
-            this.designerUrl += this.urlSearchParams.toString();
-        }
-    }
-}
diff --git a/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.html b/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.html
new file mode 100644
index 0000000..fb90a1e
--- /dev/null
+++ b/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.html
@@ -0,0 +1,5 @@
+<div class="plugin-frame">
+    <div class="w-sdc-main-container">
+        <iframe class="plugin-iframe" [src]="pluginUrl | safeUrlSanitizer"></iframe>
+    </div>
+</div>
diff --git a/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.less b/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.less
similarity index 64%
rename from catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.less
rename to catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.less
index 4b9456b..4234987 100644
--- a/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.component.less
+++ b/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.less
@@ -1,6 +1,6 @@
-.designer-frame {
+.plugin-frame {
 
-    .designer-iframe {
+    .plugin-iframe {
         width: 100%;
         height: 100%;
         border: none;
diff --git a/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.ts b/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.ts
new file mode 100644
index 0000000..169cad0
--- /dev/null
+++ b/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.component.ts
@@ -0,0 +1,38 @@
+import {Component, OnInit, Input} from "@angular/core";
+import { URLSearchParams } from '@angular/http';
+import {Plugin} from "app/models";
+
+@Component({
+    selector: 'plugin-frame',
+    templateUrl: './plugin-frame.component.html',
+    styleUrls:['plugin-frame.component.less']
+})
+
+export class PluginFrameComponent implements OnInit {
+
+    @Input() plugin: Plugin;
+    @Input() queryParams: Object;
+    pluginUrl: string;
+    private urlSearchParams: URLSearchParams;
+
+    constructor() {
+        this.urlSearchParams = new URLSearchParams();
+    }
+
+    ngOnInit(): void {
+
+        this.pluginUrl = this.plugin.pluginProtocol + "://" +
+            this.plugin.pluginHost + ":" +
+            this.plugin.pluginPort +
+            this.plugin.pluginPath;
+
+        if (this.queryParams && !_.isEmpty(this.queryParams)) {
+            _.forOwn(this.queryParams, (value, key) => {
+                this.urlSearchParams.set(key, value);
+            });
+
+            this.pluginUrl += '?';
+            this.pluginUrl += this.urlSearchParams.toString();
+        }
+    }
+}
diff --git a/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.module.ts b/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.module.ts
similarity index 64%
rename from catalog-ui/src/app/ng2/components/ui/designer/designer-frame.module.ts
rename to catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.module.ts
index 1edf195..81b99cc 100644
--- a/catalog-ui/src/app/ng2/components/ui/designer/designer-frame.module.ts
+++ b/catalog-ui/src/app/ng2/components/ui/plugin/plugin-frame.module.ts
@@ -1,25 +1,25 @@
 import {NgModule} from "@angular/core";
 import { CommonModule } from '@angular/common';
-import {DesignerFrameComponent} from "./designer-frame.component";
+import {PluginFrameComponent} from "./plugin-frame.component";
 import {LayoutModule} from "../../layout/layout.module";
 import {GlobalPipesModule} from "../../../pipes/global-pipes.module";
 
 
 @NgModule({
     declarations: [
-        DesignerFrameComponent
+        PluginFrameComponent
     ],
     imports: [
         CommonModule,
         LayoutModule,
         GlobalPipesModule
     ],
-    entryComponents: [DesignerFrameComponent],
+    entryComponents: [PluginFrameComponent],
     exports: [
-        DesignerFrameComponent
+        PluginFrameComponent
     ],
     providers: []
 })
-export class DesignerFrameModule {
+export class PluginFrameModule {
 
 }
diff --git a/catalog-ui/src/app/ng2/services/config.service.ts b/catalog-ui/src/app/ng2/services/config.service.ts
index 8675ea7..053f2c7 100644
--- a/catalog-ui/src/app/ng2/services/config.service.ts
+++ b/catalog-ui/src/app/ng2/services/config.service.ts
@@ -25,7 +25,7 @@
 import { Injectable, Inject } from '@angular/core';
 import { Http, Response } from '@angular/http';
 import 'rxjs/add/operator/toPromise';
-import {IAppConfigurtaion, ValidationConfiguration, Validations, Designers, DesignersConfiguration} from "app/models";
+import {IAppConfigurtaion, ValidationConfiguration, Validations, Plugins, PluginsConfiguration} from "app/models";
 import {IApi} from "app/models/app-config";
 import {SdcConfigToken, ISdcConfig} from "../config/sdc-config.config";
 
@@ -69,15 +69,15 @@
         return promise;
     }
 
-    loadDesignersConfiguration(): Promise<DesignersConfiguration> {
-        let url:string = this.api.no_proxy_root + this.api.GET_designers_configuration;
+    loadPluginsConfiguration(): Promise<PluginsConfiguration> {
+        let url:string = this.api.no_proxy_root + this.api.GET_plugins_configuration;
         let promise: Promise<any> = this.http.get(url).map((res: Response) => res.json()).toPromise();
-        promise.then((designersData: Designers) => {
-            DesignersConfiguration.designers = designersData;
+        promise.then((pluginsData: Plugins) => {
+            PluginsConfiguration.plugins = pluginsData;
         }).catch((ex) => {
-           console.error("Error loading designers configuration from BE", ex);
+           console.error("Error loading plugins configuration from BE", ex);
 
-            DesignersConfiguration.designers = [] as Designers;
+            PluginsConfiguration.plugins = [] as Plugins;
         });
 
         return promise;
diff --git a/catalog-ui/src/app/ng2/services/designers.service.ts b/catalog-ui/src/app/ng2/services/designers.service.ts
deleted file mode 100644
index 283b54b..0000000
--- a/catalog-ui/src/app/ng2/services/designers.service.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Injectable } from '@angular/core';
-import {Designer, DesignersConfiguration} from "app/models";
-
-@Injectable()
-export class DesignersService {
-
-    constructor() {
-    }
-
-    public getDesignerByStateUrl = (stateUrl: string) => {
-        let designerKey: any = _.findKey(DesignersConfiguration.designers, (designerConfig: Designer) =>{
-            return designerConfig.designerStateUrl ===  stateUrl;
-        });
-
-        return DesignersConfiguration.designers[designerKey];
-    }
-}
diff --git a/catalog-ui/src/app/ng2/services/plugins.service.ts b/catalog-ui/src/app/ng2/services/plugins.service.ts
new file mode 100644
index 0000000..1243225
--- /dev/null
+++ b/catalog-ui/src/app/ng2/services/plugins.service.ts
@@ -0,0 +1,17 @@
+import { Injectable } from '@angular/core';
+import {Plugin, PluginsConfiguration} from "app/models";
+
+@Injectable()
+export class PluginsService {
+
+    constructor() {
+    }
+
+    public getPluginByStateUrl = (stateUrl: string) => {
+        let pluginKey: any = _.findKey(PluginsConfiguration.plugins, (pluginConfig: Plugin) =>{
+            return pluginConfig.pluginStateUrl ===  stateUrl;
+        });
+
+        return PluginsConfiguration.plugins[pluginKey];
+    }
+}
diff --git a/catalog-ui/src/app/utils/constants.ts b/catalog-ui/src/app/utils/constants.ts
index c04da62..ea0848e 100644
--- a/catalog-ui/src/app/utils/constants.ts
+++ b/catalog-ui/src/app/utils/constants.ts
@@ -239,7 +239,7 @@
     public static WORKSPACE_DISTRIBUTION = 'workspace.distribution';
     public static WORKSPACE_PROPERTIES_ASSIGNMENT = 'workspace.properties_assignment';
     public static WORKSPACE_REQUIREMENTS_AND_CAPABILITIES = 'workspace.reqAndCap';
-    public static WORKSPACE_DESIGNERS = 'workspace.designers';
+    public static WORKSPACE_PLUGINS = 'workspace.plugins';
     public static WORKSPACE_NG2 = 'workspace.ng2';
 }
 
diff --git a/catalog-ui/src/app/view-models/designers/designers-view-model.ts b/catalog-ui/src/app/view-models/designers/designers-view-model.ts
deleted file mode 100644
index b2545c8..0000000
--- a/catalog-ui/src/app/view-models/designers/designers-view-model.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import {Designer, IUserProperties} from "app/models";
-import {CacheService} from "app/services";
-import {DesignersService} from "../../ng2/services/designers.service";
-
-
-interface IDesignerViewModelScope extends ng.IScope {
-    designer: Designer
-    user: IUserProperties;
-    version: string;
-    queryParams: Object;
-}
-
-export class DesignersViewModel {
-    static '$inject' = [
-        '$scope',
-        '$stateParams',
-        'Sdc.Services.CacheService',
-        'DesignersService'
-    ];
-
-    constructor(private $scope:IDesignerViewModelScope,
-                private $stateParams:any,
-                private cacheService:CacheService,
-                private designersService:DesignersService) {
-
-        this.initScope();
-    }
-
-    private initScope = ():void => {
-        this.$scope.designer = this.designersService.getDesignerByStateUrl(this.$stateParams.path);
-
-        this.$scope.version = this.cacheService.get('version');
-
-        this.$scope.user = this.cacheService.get('user');
-
-        this.$scope.queryParams = {
-            userId: this.$scope.user.userId
-        };
-    }
-}
diff --git a/catalog-ui/src/app/view-models/designers/designers-view.html b/catalog-ui/src/app/view-models/designers/designers-view.html
deleted file mode 100644
index 9dcad66..0000000
--- a/catalog-ui/src/app/view-models/designers/designers-view.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<div class="sdc-catalog-container">
-
-    <top-nav [version]="version" [hide-search]="true"></top-nav>
-
-    <designer-frame [designer]="designer" [query-params]="queryParams"></designer-frame>
-
-</div>
diff --git a/catalog-ui/src/app/view-models/plugins/plugins-tab-view-model.ts b/catalog-ui/src/app/view-models/plugins/plugins-tab-view-model.ts
new file mode 100644
index 0000000..ce09800
--- /dev/null
+++ b/catalog-ui/src/app/view-models/plugins/plugins-tab-view-model.ts
@@ -0,0 +1,40 @@
+import {Plugin, IUserProperties} from "app/models";
+import {CacheService} from "app/services";
+import {PluginsService} from "../../ng2/services/plugins.service";
+
+
+interface IPluginsTabViewModelScope extends ng.IScope {
+    plugin: Plugin
+    user: IUserProperties;
+    version: string;
+    queryParams: Object;
+}
+
+export class PluginsTabViewModel {
+    static '$inject' = [
+        '$scope',
+        '$stateParams',
+        'Sdc.Services.CacheService',
+        'PluginsService'
+    ];
+
+    constructor(private $scope:IPluginsTabViewModelScope,
+                private $stateParams:any,
+                private cacheService:CacheService,
+                private pluginsService:PluginsService) {
+
+        this.initScope();
+    }
+
+    private initScope = ():void => {
+        this.$scope.plugin = this.pluginsService.getPluginByStateUrl(this.$stateParams.path);
+
+        this.$scope.version = this.cacheService.get('version');
+
+        this.$scope.user = this.cacheService.get('user');
+
+        this.$scope.queryParams = {
+            userId: this.$scope.user.userId
+        };
+    }
+}
diff --git a/catalog-ui/src/app/view-models/plugins/plugins-tab-view.html b/catalog-ui/src/app/view-models/plugins/plugins-tab-view.html
new file mode 100644
index 0000000..3695434
--- /dev/null
+++ b/catalog-ui/src/app/view-models/plugins/plugins-tab-view.html
@@ -0,0 +1,7 @@
+<div class="sdc-catalog-container">
+
+    <top-nav [version]="version" [hide-search]="true"></top-nav>
+
+    <plugin-frame [plugin]="plugin" [query-params]="queryParams"></plugin-frame>
+
+</div>
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view.html b/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view.html
deleted file mode 100644
index 9af6ae7..0000000
--- a/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view.html
+++ /dev/null
@@ -1,5 +0,0 @@
-<div class="workspace-designers">
-
-    <designer-frame [designer]="designer" [query-params]="queryParams"></designer-frame>
-
-</div>
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab.less b/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab.less
deleted file mode 100644
index c8626dc..0000000
--- a/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab.less
+++ /dev/null
@@ -1,3 +0,0 @@
-.workspace-designers {
-
-}
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-context-view-model.ts
similarity index 62%
rename from catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view-model.ts
rename to catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-context-view-model.ts
index e145188..76010b5 100644
--- a/catalog-ui/src/app/view-models/workspace/tabs/designers/designers-tab-view-model.ts
+++ b/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-context-view-model.ts
@@ -1,33 +1,33 @@
-import {Designer, IUserProperties} from "app/models";
+import {Plugin, IUserProperties} from "app/models";
 import {CacheService} from "app/services";
-import {DesignersService} from "../../../../ng2/services/designers.service";
+import {PluginsService} from "../../../../ng2/services/plugins.service";
 import {IWorkspaceViewModelScope} from "../../workspace-view-model";
 
 
-interface IDesignerTabViewModelScope extends IWorkspaceViewModelScope {
-    designer: Designer;
+interface IPluginsContextViewModelScope extends IWorkspaceViewModelScope {
+    plugin: Plugin;
     user:IUserProperties;
     queryParams: Object;
 }
 
-export class DesignersTabViewModel {
+export class PluginsContextViewModel {
     static '$inject' = [
         '$scope',
         '$stateParams',
         'Sdc.Services.CacheService',
-        'DesignersService'
+        'PluginsService'
     ];
 
-    constructor(private $scope:IDesignerTabViewModelScope,
+    constructor(private $scope:IPluginsContextViewModelScope,
                 private $stateParams:any,
                 private cacheService:CacheService,
-                private designersService:DesignersService) {
+                private pluginsService:PluginsService) {
 
         this.initScope();
     }
 
     private initScope = ():void => {
-        this.$scope.designer = this.designersService.getDesignerByStateUrl(this.$stateParams.path);
+        this.$scope.plugin = this.pluginsService.getPluginByStateUrl(this.$stateParams.path);
 
         this.$scope.user = this.cacheService.get('user');
 
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-context-view.html b/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-context-view.html
new file mode 100644
index 0000000..e155370
--- /dev/null
+++ b/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-context-view.html
@@ -0,0 +1,5 @@
+<div class="workspace-plugins">
+
+    <plugin-frame [plugin]="plugin" [query-params]="queryParams"></plugin-frame>
+
+</div>
diff --git a/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-tab.less b/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-tab.less
new file mode 100644
index 0000000..7798e36
--- /dev/null
+++ b/catalog-ui/src/app/view-models/workspace/tabs/plugins/plugins-tab.less
@@ -0,0 +1,3 @@
+.workspace-plugins {
+
+}
diff --git a/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts b/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts
index 87d8367..59dd2d8 100644
--- a/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts
+++ b/catalog-ui/src/app/view-models/workspace/workspace-view-model.ts
@@ -22,7 +22,7 @@
  * Created by obarda on 3/30/2016.
  */
 'use strict';
-import {IUserProperties, IAppMenu, Resource, Component, Designer, DesignersConfiguration, DesignerDisplayOptions} from "app/models";
+import {IUserProperties, IAppMenu, Resource, Component, Plugin, PluginsConfiguration, PluginDisplayOptions} from "app/models";
 import {
     WorkspaceMode, ComponentFactory, ChangeLifecycleStateHandler, Role, ComponentState, MenuItemGroup, MenuHandler,
     MenuItem, ModalsHandler, States, EVENTS, CHANGE_COMPONENT_CSAR_VERSION_FLAG, ResourceType
@@ -58,7 +58,7 @@
     changeVersion:any;
     isComposition:boolean;
     isDeployment:boolean;
-    isDesigners:boolean;
+    isPlugins:boolean;
     $state:ng.ui.IStateService;
     user:IUserProperties;
     thirdParty:boolean;
@@ -629,8 +629,8 @@
 
             let selectedIndex = selectedItem ? this.$scope.leftBarTabs.menuItems.indexOf(selectedItem) : 0;
 
-            if (stateArray[1] === 'designers') {
-                selectedIndex += _.findIndex(DesignersConfiguration.designers, (designer: Designer) => designer.designerStateUrl === this.$state.params.path);
+            if (stateArray[1] === 'plugins') {
+                selectedIndex += _.findIndex(PluginsConfiguration.plugins, (plugin: Plugin) => plugin.pluginStateUrl === this.$state.params.path);
             }
 
             this.$scope.leftBarTabs.selectedIndex = selectedIndex;
@@ -644,7 +644,7 @@
             if (newVal) {
                 this.$scope.isComposition = (newVal.indexOf(States.WORKSPACE_COMPOSITION) > -1);
                 this.$scope.isDeployment = newVal == States.WORKSPACE_DEPLOYMENT;
-                this.$scope.isDesigners = newVal == States.WORKSPACE_DESIGNERS;
+                this.$scope.isPlugins = newVal == States.WORKSPACE_PLUGINS;
             }
         });
 
@@ -719,18 +719,18 @@
         this.$scope.leftBarTabs = new MenuItemGroup();
         const menuItemsObjects:Array<any> = this.updateMenuItemByRole(this.sdcMenu.component_workspace_menu_option[this.$scope.component.getComponentSubType()], this.role);
 
-        // Only need to add designers to the menu if the current role is Designer
+        // Only need to add plugins to the menu if the current role is Designer
         if (this.role === "DESIGNER") {
-            _.each(DesignersConfiguration.designers, (designer: Designer) => {
-                if (designer.designerDisplayOptions["context"]) {
-                    let displayOptions : DesignerDisplayOptions = designer.designerDisplayOptions["context"];
+            _.each(PluginsConfiguration.plugins, (plugin: Plugin) => {
+                if (plugin.pluginDisplayOptions["context"]) {
+                    let displayOptions : PluginDisplayOptions = plugin.pluginDisplayOptions["context"];
 
                     if (displayOptions.displayContext.indexOf(this.$scope.component.componentType) !== -1) {
                         menuItemsObjects.push({
                             text: displayOptions.displayName,
                             action: 'onMenuItemPressed',
-                            state: 'workspace.designers',
-                            params: {path: designer.designerStateUrl}
+                            state: 'workspace.plugins',
+                            params: {path: plugin.pluginStateUrl}
                         });
                     }
                 }
diff --git a/catalog-ui/src/app/view-models/workspace/workspace-view.html b/catalog-ui/src/app/view-models/workspace/workspace-view.html
index f076ba0..d724b8d 100644
--- a/catalog-ui/src/app/view-models/workspace/workspace-view.html
+++ b/catalog-ui/src/app/view-models/workspace/workspace-view.html
@@ -70,7 +70,7 @@
                 </div>
             </div>
             <div class="w-sdc-main-container-body-content-wrapper">
-                <div class="tab-title" data-ng-if="!isComposition && !isDeployment && !isDesigners">
+                <div class="tab-title" data-ng-if="!isComposition && !isDeployment && !isPlugins">
                     {{getTabTitle()}}
                 </div>
                 <div class="w-sdc-main-container-body-content" data-ng-class="{'third-party':thirdParty}" data-ui-view></div>
