diff --git a/instancehandler/views.py b/instancehandler/views.py
index 0c9a8a4..86d00d5 100644
--- a/instancehandler/views.py
+++ b/instancehandler/views.py
@@ -15,9 +15,9 @@
 #
 
 from django.shortcuts import render, redirect
-from django.contrib.auth.decorators import login_required, permission_required
+from django.contrib.auth.decorators import login_required
 from django.http import HttpResponse, JsonResponse
-import json
+import yaml
 import logging
 from lib.osm.osmclient.client import Client
 
@@ -39,12 +39,29 @@
         "nsDescription": request.POST.get('nsDescription', ''),
         "nsdId": request.POST.get('nsdId', ''),
         "vimAccountId": request.POST.get('vimAccountId', ''),
-        # "ssh-authorized-key": [
-        #     {
-        #         request.POST.get('key-pair-ref', ''): request.POST.get('keyValue', '')
-        #     }
-        # ]
     }
+    if 'ssh_key' in request.POST:
+        ns_data["ssh-authorized-key"] = [request.POST.get('ssh_key')]
+
+    if 'config' in request.POST:
+        ns_config = yaml.load(request.POST.get('config'))
+        if "vim-network-name" in ns_config:
+            ns_config["vld"] = ns_config.pop("vim-network-name")
+        if "vld" in ns_config:
+            for vld in ns_config["vld"]:
+                if vld.get("vim-network-name"):
+                    if isinstance(vld["vim-network-name"], dict):
+                        vim_network_name_dict = {}
+                        for vim_account, vim_net in vld["vim-network-name"].items():
+                            vim_network_name_dict[ns_data["vimAccountId"]] = vim_net
+                        vld["vim-network-name"] = vim_network_name_dict
+            ns_data["vld"] = ns_config["vld"]
+        if "vnf" in ns_config:
+            for vnf in ns_config["vnf"]:
+                if vnf.get("vim_account"):
+                    vnf["vimAccountId"] = ns_data["vimAccountId"]
+
+            ns_data["vnf"] = ns_config["vnf"]
     print ns_data
     client = Client()
     result = client.ns_create(ns_data)
@@ -53,7 +70,7 @@
 
 @login_required
 def action(request, project_id=None, instance_id=None, type=None):
-    result = {}
+
     client = Client()
 
     # result = client.ns_action(instance_id, action_payload)
