diff --git a/projecthandler/middleware.py b/projecthandler/middleware.py
new file mode 100644
index 0000000..4880ebe
--- /dev/null
+++ b/projecthandler/middleware.py
@@ -0,0 +1,6 @@
+
+class OsmProjectMiddleware(object):
+    def process_view(self, request, view_func, view_args, view_kwargs):
+        print "OsmProjectMiddleware", view_func, view_args, view_kwargs
+
+        return None
\ No newline at end of file
diff --git a/projecthandler/template/project/descriptor/descriptor_view_base.html b/projecthandler/template/project/descriptor/descriptor_view_base.html
index 3635d66..e97649d 100644
--- a/projecthandler/template/project/descriptor/descriptor_view_base.html
+++ b/projecthandler/template/project/descriptor/descriptor_view_base.html
@@ -125,7 +125,7 @@
 
 
         function goToGraph() {
-            window.location.href = '/projects/{{project_id}}/graph?type={{descriptor_type}}&id={{descriptor_id}}'
+            window.location.href = '/projects/graph?type={{descriptor_type}}&id={{descriptor_id}}'
         }
     </script>
 {% endblock %}
diff --git a/projecthandler/template/project/osm/descriptor/descriptor_new.html b/projecthandler/template/project/osm/descriptor/descriptor_new.html
index 799026b..7711b57 100644
--- a/projecthandler/template/project/osm/descriptor/descriptor_new.html
+++ b/projecthandler/template/project/osm/descriptor/descriptor_new.html
@@ -14,8 +14,8 @@
 
 {% block breadcrumb_body %}
 {{ block.super }}
-<li><a href="{% url 'projects:open_project' project_id=project_id %}">{{project_id}}</a></li>
-<li><a href="{% url 'projects:open_project' project_id=project_id %}descriptors/{{descriptor_type}}">{{ descriptor_type }}  Descriptors</a></li>
+<li><a href="{% url 'projects:open_project'  %}">{{project_id}}</a></li>
+<li><a href="{% url 'projects:open_project'  %}descriptors/{{descriptor_type}}">{{ descriptor_type }}  Descriptors</a></li>
 <li>Create Descriptor</li>
 {% endblock %}
 
@@ -50,9 +50,9 @@
 {{ block.super }}
 
 <script>
-    var descr_list_url = '{% url "projects:list_descriptors"  project_id=project_id descriptor_type=descriptor_type%}';
+    var descr_list_url = '{% url "projects:list_descriptors"   descriptor_type=descriptor_type%}';
     var csrf_token = '{{csrf_token}}';
-    var new_desc_url ="{% url 'projects:new_descriptor' project_id=project_id descriptor_type=descriptor_type %}"
+    var new_desc_url ="{% url 'projects:new_descriptor'  descriptor_type=descriptor_type %}"
 
     function cancel(id) {
         window.location.href = descr_list_url
diff --git a/projecthandler/template/project/osm/descriptor/descriptor_view.html b/projecthandler/template/project/osm/descriptor/descriptor_view.html
index fe2d78c..3272f44 100644
--- a/projecthandler/template/project/osm/descriptor/descriptor_view.html
+++ b/projecthandler/template/project/osm/descriptor/descriptor_view.html
@@ -15,8 +15,8 @@
 
 {% block breadcrumb_body %}
 {{ block.super }}
-<li><a href="{% url 'projects:open_project' project_id=project_id %}">{{project_id}}</a></li>
-<li><a href="{% url 'projects:open_project' project_id=project_id %}descriptors/{{descriptor_type}}">{{ descriptor_type }} Descriptors</a></li>
+<li><a href="{% url 'projects:open_project' %}">{{project_id}}</a></li>
+<li><a href="{% url 'projects:open_project' %}descriptors/{{descriptor_type}}">{{ descriptor_type }} Descriptors</a></li>
 <li><a>{{descriptor_id}}</a></li>
 {% endblock %}
 
@@ -97,7 +97,7 @@
                 break;
         }
         $.ajax({
-            url: "/projects/{{project_id}}/descriptors/{{descriptor_type}}/{{descriptor_id}}/",
+            url: "/projects/descriptors/{{descriptor_type}}/{{descriptor_id}}/",
             type: 'POST',
             dataType: 'json',
             data: {
diff --git a/projecthandler/template/project/osm/descriptor/descriptorlist.html b/projecthandler/template/project/osm/descriptor/descriptorlist.html
index 002cd57..c995844 100644
--- a/projecthandler/template/project/osm/descriptor/descriptorlist.html
+++ b/projecthandler/template/project/osm/descriptor/descriptorlist.html
@@ -7,10 +7,13 @@
             <h3 class="box-title">
             </h3>
             <div class="box-tools">
-
-                <a href="{% url 'projects:new_descriptor' project_id=project_id descriptor_type=descriptor_type %}"
+                <div class="btn-group">
+                    <!--
+                <a href="{% url 'projects:open_composer'%}"
                    class="btn btn-block btn-primary btn-sm"><i
-                        class="fa fa-upload"></i><span> Onboard {{ descriptor_type|upper }}</span></a>
+                        class="fa fa-paint-brush" disabled></i><span> Composer</span></a>
+                        -->
+                </div>
             </div>
         </div>
         <div class="box-body">
@@ -39,28 +42,28 @@
                                 {% if descriptor_type == "nsd" %}
                                     <button type="button" class="btn btn-default" data-container="body"
                                             data-toggle="tooltip" data-placement="top" title="Instantiate NS"
-                                            onclick="javascript:openModalCreateNS({ 'project_id':'{{ project_id }}', 'descriptor_type': '{{ descriptor_type }}', 'descriptor_name':'{{ k|get:"name" }}', 'descriptor_id':'{{ k|get:"_id" }}','vim_list_url': '{% url "projects:vims:list" project_id=project_id %}',  'nsd_list_url': '{% url "projects:list_descriptors" project_id=project_id descriptor_type=descriptor_type %}' })">
+                                            onclick="javascript:openModalCreateNS({ 'project_id':'{{ project_id }}', 'descriptor_type': '{{ descriptor_type }}', 'descriptor_name':'{{ k|get:"name" }}', 'descriptor_id':'{{ k|get:"_id" }}','vim_list_url': '{% url "projects:vims:list"  %}',  'nsd_list_url': '{% url "projects:list_descriptors"  descriptor_type=descriptor_type %}' })">
                                         <i class="fa fa-paper-plane"></i></button>
                                 {% endif %}
                                 <button type="button" class="btn btn-default" data-container="body"
                                         data-toggle="tooltip" data-placement="top" title="Edit"
-                                        onclick="javascript:openDescriptorView('{{ project_id }}', '{{ descriptor_type }}', '{{ k|get:"_id" }}')">
+                                        onclick="javascript:openDescriptorView('{{ descriptor_type }}', '{{ k|get:"_id" }}')">
                                     <i class="fa fa-edit"></i></button>
                                 <button type="button" class="btn btn-default" data-container="body"
                                         data-toggle="tooltip" data-placement="top" title="Show content"
-                                        onclick="javascript:openPackageContentList('{{ project_id }}', '{{ descriptor_type }}', '{{ k|get:"_id" }}')">
+                                        onclick="javascript:openPackageContentList('{{ descriptor_type }}', '{{ k|get:"_id" }}')">
                                     <i class="fa fa-folder-open"></i></button>
                                 <button type="button" class="btn btn-default" data-container="body"
                                         data-toggle="tooltip" data-placement="top" title="Show Graph"
-                                        onclick="location.href='/projects/{{ project_id }}/graph?type={{ descriptor_type }}&id={{ k|get:"_id" }}'"
+                                        onclick="location.href='/projects/graph?type={{ descriptor_type }}&id={{ k|get:"_id" }}'"
                                         disabled><i class="fa fa-sitemap fa-fw"></i></button>
                                 <button type="button" class="btn btn-default" data-container="body"
                                         data-toggle="tooltip" data-placement="top" title="Download package"
-                                        onclick="location.href='{% url 'projects:custom_action' project_id=project_id descriptor_type=descriptor_type descriptor_id=k|get:'_id' action_name='download_pkg' %}'">
+                                        onclick="location.href='{% url 'projects:custom_action'  descriptor_type=descriptor_type descriptor_id=k|get:'_id' action_name='download_pkg' %}'">
                                     <i class="fa fa-download fa-fw"></i></button>
                                 <button type="button" class="btn btn-default" data-container="body"
                                         data-toggle="tooltip" data-placement="top" title="Delete"
-                                        onclick="javascript:deletePackage('{{ project_id }}', '{{ descriptor_type }}', '{{ k|get:"_id" }}')">
+                                        onclick="javascript:deletePackage( '{{ descriptor_type }}', '{{ k|get:"_id" }}')">
                                     <i class="far fa-trash-alt"></i></button>
                             </div>
 
diff --git a/projecthandler/template/project/osm/osm_project_descriptors.html b/projecthandler/template/project/osm/osm_project_descriptors.html
index 99b6111..10df788 100644
--- a/projecthandler/template/project/osm/osm_project_descriptors.html
+++ b/projecthandler/template/project/osm/osm_project_descriptors.html
@@ -22,7 +22,7 @@
 
 {% block breadcrumb_body %}
   	{{ block.super }}
-    <li><a href="{% url 'projects:open_project' project_id=project_id %}">{{project_id}}</a></li>
+    <li><a href="{% url 'projects:open_project' %}">{{project_id}}</a></li>
     <li><a> {% if descriptor_type  %}
      {{ descriptor_type }}
   {% else%}
@@ -47,8 +47,8 @@
   	{{ block.super }}
     <script>
     var csrf_token = '{{csrf_token}}';
-    var descr_list_url = '{% url "projects:list_descriptors"  project_id=project_id descriptor_type=descriptor_type%}';
-    var new_desc_url ="{% url 'projects:new_descriptor' project_id=project_id descriptor_type=descriptor_type %}"
+    var descr_list_url = '{% url "projects:list_descriptors"   descriptor_type=descriptor_type%}';
+    var new_desc_url ="{% url 'projects:new_descriptor'  descriptor_type=descriptor_type %}"
     </script>
     <script src="/static/bower_components/select2/dist/js/select2.js"></script>
     <script src="/static/src/instancehandler/instance_create.js"></script>
diff --git a/projecthandler/template/project/osm/osm_project_details.html b/projecthandler/template/project/osm/osm_project_details.html
index ed3e0fa..b0a1203 100644
--- a/projecthandler/template/project/osm/osm_project_details.html
+++ b/projecthandler/template/project/osm/osm_project_details.html
@@ -44,7 +44,7 @@
                     <div class="inner"><h3>{{ project_overview.nsd }}</h3>
                         <p>NS packages</p></div>
                     <div class="icon"><i class="fa fa-archive"></i></div>
-                    <a href='{% url "projects:list_descriptors"  project_id=project_id descriptor_type="nsd" %}' class="small-box-footer">Open list <i
+                    <a href='{% url "projects:list_descriptors"   descriptor_type="nsd" %}' class="small-box-footer">Open list <i
                             class="fa fa-arrow-circle-right"></i></a></div>
             </div>
             <div class="col-md-6 ">
@@ -52,7 +52,7 @@
                     <div class="inner"><h3>{{ project_overview.vnfd }}</h3>
                         <p>VNF packages</p></div>
                     <div class="icon"><i class="fa fa-archive"></i></div>
-                    <a href='{% url "projects:list_descriptors"  project_id=project_id descriptor_type="vnfd" %}' class="small-box-footer">Open list <i
+                    <a href='{% url "projects:list_descriptors"   descriptor_type="vnfd" %}' class="small-box-footer">Open list <i
                             class="fa fa-arrow-circle-right"></i></a></div>
             </div>
         </div>
@@ -62,7 +62,7 @@
                     <div class="inner"><h3>{{ project_overview.ns }}</h3>
                         <p>NS Instances</p></div>
                     <div class="icon"><i class="fa fa-sitemap fa-fw"></i></div>
-                    <a href='{% url "projects:instances:list" project_id=project_id type="ns"  %}' class="small-box-footer">Open list <i
+                    <a href='{% url "projects:instances:list"  type="ns"  %}' class="small-box-footer">Open list <i
                             class="fa fa-arrow-circle-right"></i></a></div>
             </div>
 
@@ -71,7 +71,7 @@
                     <div class="inner"><h3>{{ project_overview.vnf }}</h3>
                         <p>VNF Instances</p></div>
                     <div class="icon"><i class="far fa-hdd fa-fw"></i></div>
-                    <a href='{% url "projects:instances:list" project_id=project_id type="vnf"  %}' class="small-box-footer">Open list <i
+                    <a href='{% url "projects:instances:list"  type="vnf"  %}' class="small-box-footer">Open list <i
                             class="fa fa-arrow-circle-right"></i></a></div>
             </div>
 
diff --git a/projecthandler/template/project/osm/osm_project_left_sidebar.html b/projecthandler/template/project/osm/osm_project_left_sidebar.html
index 6399b11..b07c432 100644
--- a/projecthandler/template/project/osm/osm_project_left_sidebar.html
+++ b/projecthandler/template/project/osm/osm_project_left_sidebar.html
@@ -8,14 +8,14 @@
             <li {% if request.get_full_path == home_url %} class="active" {% endif %} ><a href='{% url "home" %}'><i
                     class="fa fa-home fa-fw"></i> <span>Home</span></a></li>
             <li class="header">PROJECT</li>
-            {% url "projects:open_project"  project_id=project_id as  project_url %}
+            {% url "projects:open_project"  as  project_url %}
             <li {% if request.get_full_path == project_url %} class="active" {% endif %} >
-                <a href='{% url "projects:open_project"  project_id=project_id %}'>
+                <a href='{% url "projects:open_project" %}'>
                     <i class="fa fa-file-text fa-fw"></i> <span>Overview</span>
                 </a>
             </li>
-            {% url "projects:list_descriptors"  project_id=project_id descriptor_type="nsd" as  nsd_list_url %}
-            {% url "projects:list_descriptors"  project_id=project_id descriptor_type='vnfd' as  vnfd_list_url %}
+            {% url "projects:list_descriptors"   descriptor_type="nsd" as  nsd_list_url %}
+            {% url "projects:list_descriptors"   descriptor_type='vnfd' as  vnfd_list_url %}
             <li {% if request.get_full_path == nsd_list_url or  request.get_full_path == vnfd_list_url %}
                 class="active treeview menu-open" {% else %} class="treeview  menu-open" {% endif %} >
                 <a href="#">
@@ -38,8 +38,8 @@
 
                 </ul>
             </li>
-            {% url "projects:instances:list" project_id=project_id type='ns' as  instance_ns_list_url %}
-            {% url "projects:instances:list" project_id=project_id type='vnf' as  instance_vnf_list_url %}
+            {% url "projects:instances:list"  type='ns' as  instance_ns_list_url %}
+            {% url "projects:instances:list"  type='vnf' as  instance_vnf_list_url %}
             <li {% if request.get_full_path == instance_ns_list_url or  request.get_full_path == instance_vnf_list_url %}
                 class="active treeview menu-open" {% else %} class="treeview  menu-open" {% endif %} >
                 <a href="#">
@@ -49,32 +49,32 @@
                     </span>
                 </a>
                 <ul class="treeview-menu" style="display: block;">
-                    {% url "projects:instances:list" project_id=project_id type='ns' as  instance_ns_list_url %}
+                    {% url "projects:instances:list"  type='ns' as  instance_ns_list_url %}
                     <li {% if request.get_full_path == instance_ns_list_url %} class="active" {% endif %} >
-                        <a href='{% url "projects:instances:list" project_id=project_id  type="ns" %}'>
+                        <a href='{% url "projects:instances:list"   type="ns" %}'>
                             <i class="fa fa-sitemap fa-fw"></i> <span>NS Instances</span>
                         </a>
 
                     </li>
-                    {% url "projects:instances:list" project_id=project_id type='vnf' as  instance_vnf_list_url %}
+                    {% url "projects:instances:list"  type='vnf' as  instance_vnf_list_url %}
                     <li {% if request.get_full_path == instance_vnf_list_url %} class="active" {% endif %} >
-                        <a href='{% url "projects:instances:list" project_id=project_id  type="vnf" %}'>
+                        <a href='{% url "projects:instances:list"   type="vnf" %}'>
                             <i class="far fa-hdd fa-fw"></i> <span>VNF Instances</span>
                         </a>
                     </li>
                 </ul>
             </li>
 
-            {% url "projects:sdns:list"  project_id=project_id as sdn_list_url %}
+            {% url "projects:sdns:list"   as sdn_list_url %}
             <li {% if request.get_full_path == sdn_list_url %} class="active" {% endif %}>
-                <a href='{% url "projects:sdns:list"  project_id=project_id %}'>
+                <a href='{% url "projects:sdns:list"   %}'>
                     <i class="fas fa-globe fa-fw"></i> <span>SDN Controllers</span>
                 </a>
             </li>
 
-            {% url "projects:vims:list"  project_id=project_id as  vim_list_url %}
+            {% url "projects:vims:list"   as  vim_list_url %}
             <li {% if request.get_full_path == vim_list_url %} class="active" {% endif %}>
-                <a href='{% url "projects:vims:list"  project_id=project_id %}'>
+                <a href='{% url "projects:vims:list"   %}'>
                     <i class="fa fa-server fa-fw"></i> <span>VIM Accounts</span>
                 </a>
             </li>
diff --git a/projecthandler/template/project/project_delete.html b/projecthandler/template/project/project_delete.html
index 432e1ff..4ae063e 100644
--- a/projecthandler/template/project/project_delete.html
+++ b/projecthandler/template/project/project_delete.html
@@ -14,7 +14,7 @@
 {% block breadcrumb_body %}
   	{{ block.super }}
     {% if project_id  %}
-    <li><a href="{% url 'projects:open_project' project_id=project_id %}">{{project_overview_data.name}}</a></li>
+    <li><a href="{% url 'projects:open_project' %}">{{project_overview_data.name}}</a></li>
     <li>Delete Project</li>
     {% endif %}
 {% endblock %}
diff --git a/projecthandler/template/project/project_details.html b/projecthandler/template/project/project_details.html
index e944e0d..aac2983 100644
--- a/projecthandler/template/project/project_details.html
+++ b/projecthandler/template/project/project_details.html
@@ -25,7 +25,7 @@
 {% block breadcrumb_body %}
   	{{ block.super }}
     <li><a href="{% url 'projects:projects_list' %}">Projects</a></li>
-    <li><a href="{% url 'projects:open_project' project_id=project_id %}">{{project_overview.name}}</a></li>
+    <li><a href="{% url 'projects:open_project' %}">{{project_overview.name}}</a></li>
 {% endblock %}
 
 {% block content_body %}
diff --git a/projecthandler/template/project/project_graph_base.html b/projecthandler/template/project/project_graph_base.html
index 7d344da..282afb4 100644
--- a/projecthandler/template/project/project_graph_base.html
+++ b/projecthandler/template/project/project_graph_base.html
@@ -1,58 +1,81 @@
 {% extends "base.html" %}
-
+{% load get %}
 {% load staticfiles %}
 
+
+
 {% block head_block %}
-  	{{ block.super }}
-    	<link rel="stylesheet" href="{% static "topology3D/css/graph_editor_d3js.css" %}">
-    	<link rel="stylesheet" href="{% static "topology3D/css/d3-context-menu.css" %}">
+    {{ block.super }}
+    <link rel="stylesheet" href="/static/bower_components/select2/dist/css/select2.min.css">
+    <link rel="stylesheet" href="/static/css/lwuitable.css">
+
+    <!-- Topology3D core CSS -->
+    <link rel="stylesheet" href="/static/topology3D/css/graph_editor_d3js.css">
+    <link rel="stylesheet" href="/static/topology3D/css/d3-context-menu.css">
+
 {% endblock %}
 {% block title_header_big %}
     {{ block.super }}
 {% endblock %}
 {% block left_sidebar %}
-
+    {% include 'osm/osm_project_left_sidebar.html' %}
 {% endblock %}
 
 
 {% block breadcrumb_body %}
-  	{{ block.super }}
-    <li><a href="{% url 'projects:open_project' project_id=project_id %}">{{project_overview_data.name}}</a></li>
+    {{ block.super }}
+    <li><a href="#"><i class="fa fa-sitemap"></i> Composer</a></li>
 {% endblock %}
 
 {% block content_body %}
-  	{{ block.super }}
- {% csrf_token %}
-<div class="row" >
-    <div class="col-md-12">
-        {% block topology_toolbar %}
+    {{ block.super }}
+    {% csrf_token %}
+    {% include 'osm/descriptor/modal/create_link_chooser.html' %}
+{% include 'osm/descriptor/modal/choose_node_id.html' %}
+{% include 'osm/modal/modal_keyboard_info.html' %}
+    <div class="row" >
+        <div class="col-md-12">
+            {% block topology_toolbar %}
+                {{ block.super }}
+                 {% include 'topology_toolbar.html' %}
+            {% endblock %}
+            <div id="graph_ed_container" style="width: 100%; height:100%; background-color: white; border: 2px #3c8dbc solid;">
 
-
-        {% endblock %}
-        <div id="graph_ed_container" style="width: 100%; height:100%; background-color: white; border: 2px #3c8dbc solid;">
-
+            </div>
         </div>
     </div>
-</div>
+
 
 
 {% endblock %}
 
 {% block resource_block %}
-  	{{ block.super }}
+    {{ block.super }}
+    <script>
+        var topology_data = {};//{{topology_data|safe }};
+    </script>
+    <!-- Utility JS -->
+    <script src="/static/bower_components/select2/dist/js/select2.js"></script>
 
     <!-- d3.js -->
-    <script src="{% static "bower_components/d3/d3.min.js" %}" charset="utf-8"></script>
+    <script src="https://d3js.org/d3.v4.js"></script>
+<!--
+    <script src="/static/bower_components/d3/d3.js"></script>-->
 
     <!-- topology3D -->
-    <script src="{% static "topology3D/js/d3-context-menu.js" %}"></script>
-    <script src="{% static "topology3D/js/event.js" %}"></script>
-    <script src="{% static "topology3D/js/graph_editor.js" %}"></script>
-    <script src="{% static "topology3D/js/graph_request.js" %}"></script>
+    <script src="/static/topology3D/js/d3-context-menu.js"></script>
+    <script src="/static/topology3D/js/event.js"></script>
+    <script src="/static/topology3D/js/graph_editor.js"></script>
+    <script src="/static/topology3D/js/graph_request.js"></script>
+    <script src="/static/topology3D/js/model_graph_editor.js"></script>
+
+
+    <script src="/static/src/osm_gui_properties.js"></script>
+    <script src="/static/src/projecthandler/composer.js"></script>
+    <script src="/static/src/projecthandler/osm/controller.js"></script>
 
 {% endblock %}
 
-
-{% block header %}
+{% block footer %}
+    {% include "footer.html" %}
 {% endblock %}
-
diff --git a/projecthandler/template/project/projectlist.html b/projecthandler/template/project/projectlist.html
index 6339679..6e3793d 100644
--- a/projecthandler/template/project/projectlist.html
+++ b/projecthandler/template/project/projectlist.html
@@ -57,13 +57,13 @@
 					<tr>
 
 						<td>
-							<a href="javascript:openProject('{{ p.name }}')" >{{ p.name }}</a>
+							<a href="/projects/switch/{{ p.name }}" >{{ p.name }}</a>
 						</td>
 
 						<td>{{ p|get_sub:"_admin,modified"|get_date}}</td>
                         <td>{{ p|get_sub:"_admin,created"|get_date}}</td>
 
-						<td><a href="javascript:deleteProject('{% url 'projects:delete_project'  project_id=p|get:'_id' %}')"> Delete</a></td>
+						<td><a href="javascript:deleteProject('{% url 'projects:delete_project' %}')"> Delete</a></td>
 
 					</tr>
 				{% endfor %}
diff --git a/projecthandler/template/project/repository/repo_base_left_sidebar.html b/projecthandler/template/project/repository/repo_base_left_sidebar.html
deleted file mode 100644
index 3367eeb..0000000
--- a/projecthandler/template/project/repository/repo_base_left_sidebar.html
+++ /dev/null
@@ -1,12 +0,0 @@
-{% extends "left_sidebar_base.html" %}
-
-{% block left_sidebar_base %}
-    <li class="header">REPOSITORY</li>
-    {% url "repos:repos_list" as  repo_list_url %}
-    <li {% if request.get_full_path == repo_list_url %} class="active" {% endif %}><a href='{% url "repos:repos_list" %}'><i class="fa fa-git fa-fw"></i><span>Ropository Registered</span></a></li>
-
-    {% block li_list %}
-
-
-    {% endblock %}
-{% endblock %}
diff --git a/projecthandler/template/project/repository/repo_create_modal.html b/projecthandler/template/project/repository/repo_create_modal.html
deleted file mode 100644
index 6df53b5..0000000
--- a/projecthandler/template/project/repository/repo_create_modal.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<div class="modal" id="modal_new_repository" xmlns="http://www.w3.org/1999/html">
-    <div class="modal-dialog">
-        <div class="modal-content">
-            <div class="modal-header">
-                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
-                    <span aria-hidden="true">×</span></button>
-                <h4 class="modal-title" id="modal_new_repo_title">New Repository</h4>
-            </div>
-            <div id="div_chose_id" class="modal-body">
-                <!-- form start -->
-            <form action='{% url "repos:new_repo" %}' class="form-horizontal" role="form" method="post" enctype="multipart/form-data">
-                {% csrf_token %}
-                    <div class="box-body">
-                        <div class="form-group">
-                            <label for="name" class="col-sm-2 control-label">Name</label>
-
-                            <div class="col-sm-10">
-                                <input type="text" class="form-control" id="name" placeholder="Name" name="name" required>
-                            </div>
-                        </div>
-                        <div class="form-group">
-                            <label for="base_url_repo" class="col-sm-2 control-label">Base Url</label>
-
-                                <div class="col-sm-10">
-                                    <input class="form-control required" id="base_url_repo"
-                                           name="base_url_repo" placeholder="Base Url" pattern="((git|ssh|http(s)?)|(git@[\w\.]+))(:(\/\/)?)([\w\.\/\-]*)">
-                                </div>
-                        </div>
-                    </div>
-                    <!-- /.box-body -->
-                    <div class="box-footer">
-                        <button type="button" class="btn btn-default pull-left" data-dismiss="modal">Cancel</button>
-                        <button type="submit" class="btn btn-info pull-right" id="save_new_repo">Register</button>
-                    </div>
-                    <!-- /.box-footer -->
-                </form>
-            </div>
-
-        </div>
-        <!-- /.modal-content -->
-    </div>
-    <!-- /.modal-dialog -->
-</div>
\ No newline at end of file
diff --git a/projecthandler/template/project/repository/repo_list.html b/projecthandler/template/project/repository/repo_list.html
deleted file mode 100644
index 1f0a8f3..0000000
--- a/projecthandler/template/project/repository/repo_list.html
+++ /dev/null
@@ -1,120 +0,0 @@
-{% extends "base.html" %}
-
-{% load staticfiles %}
-
-{% block head_block %}
-{{ block.super }}
-
-<style type="text/css">
-
-  input:required:invalid, input:focus:invalid {
-
-    background-position: right top;
-    background-repeat: no-repeat;
-  }
-  input:required:valid {
-
-    background-position: right top;
-    background-repeat: no-repeat;
-  }
-
-.form-control.select2-hidden-accessible {
-    top: 30px;
-}
-
-
-</style>
-{% endblock %}
-
-{% block title_header_big %}
-{{ block.super }}
-{% endblock %}
-
-{% block left_sidebar %}
-<!-- Left side column. contains the sidebar -->
-{% include "repository/repo_base_left_sidebar.html" %}
-{% endblock %}
-
-
-{% block breadcrumb_body %}
-{{ block.super }}
-
-{% endblock %}
-
-{% block content_body %}
-{{ block.super }}
-{% csrf_token %}
-    <div class="row">
-
-        <div class="col-md-12">
-
-            <div class="box">
-                <div class="box-header with-border">
-                    <h3 class="box-title">Registered Repository</h3>
-                    <div class="box-tools">
-                        <a href="#" class="btn btn-block btn-primary btn-sm" data-toggle="modal"
-                           data-target="#modal_new_repository"><i
-                                class="fa fa-plus"></i><span> New Repository</span></a>
-                    </div>
-                </div>
-                <div class="box-body">
-                    <table id="deployments_table" class="table table-bordered table-striped">
-                        <thead>
-                        <tr>
-
-                            <th>Name</th>
-                            <th>Url</th>
-                            <th>Last Update</th>
-                            <th>Actions</th>
-                        </tr>
-                        </thead>
-                        <tbody>
-                        {% for repo in repos %}
-                            <tr>
-
-                                <td>
-                                    {{ repo.name }}
-                                </td>
-                                <td>
-                                    {{ repo.base_url }}
-                                </td>
-                                <td>{{ repo.last_update }}</td>
-                                <td>
-                                    <div class="btn-group">
-                                        <button type="button" class="btn btn-default"><i class="fa fa-cog"
-                                                                                         aria-hidden="true"></i>
-                                        </button>
-                                        <button type="button" class="btn btn-default dropdown-toggle"
-                                                data-toggle="dropdown"
-                                                aria-expanded="false">
-                                            <span class="caret"></span>
-                                            <span class="sr-only">Toggle Dropdown</span>
-                                        </button>
-                                        <ul class="dropdown-menu" role="menu">
-                                            <li class='disabled'><a href='#'><i class="fa fa-edit fa-fw"></i>Edit</a>
-                                            </li>
-                                            <li><a href='{% url "repos:delete_repo" repo_id=repo.id %}'>
-                                                <i class="fa fa-trash fa-fw"></i>Delete</a></li>
-                                        </ul>
-                                    </div>
-                                </td>
-
-                            </tr>
-                        {% endfor %}
-                        </tbody>
-                    </table>
-                </div>
-            </div>
-        </div>
-
-    </div>
-{% include 'repository/repo_create_modal.html' %}
-
-{% endblock %}
-
-{% block resource_block %}
-{{ block.super }}
-
-
-
-{% endblock %}
\ No newline at end of file
diff --git a/projecthandler/urls/project.py b/projecthandler/urls/project.py
index 2054656..1e3b24e 100644
--- a/projecthandler/urls/project.py
+++ b/projecthandler/urls/project.py
@@ -18,24 +18,26 @@
 from projecthandler import views
 
 urlpatterns = [
+    url(r'^$', views.open_project, name='open_project'),
     url(r'^list/', views.user_projects, name='projects_list'),
     url(r'^new/', views.create_new_project, name='new_project'),
-    url(r'^(?P<project_id>\w+)/$', views.open_project, name='open_project'),
-    url(r'^(?P<project_id>\w+)/sdn/', include('sdnctrlhandler.urls', namespace='sdns'), name='sdns_base'),
-    url(r'^(?P<project_id>\w+)/vims/', include('vimhandler.urls', namespace='vims'), name='vims_base'),
-    url(r'^(?P<project_id>\w+)/instances/', include('instancehandler.urls', namespace='instances'), name='instances_base'),
-    url(r'^(?P<project_id>\w+)/delete$', views.delete_project, name='delete_project'),
-    url(r'^(?P<project_id>\w+)/descriptors/(?P<descriptor_type>\w+)/list$', views.show_descriptors, name='list_descriptors'),
-    url(r'^(?P<project_id>\w+)/descriptors/(?P<descriptor_type>\w+)/(?P<descriptor_id>[-\w]+)(/$)',
+    url(r'^delete$', views.delete_project, name='delete_project'),
+    url(r'^switch/(?P<project_id>\w+)', views.switch_project, name='switch_project'),
+    url(r'^descriptors/(?P<descriptor_type>\w+)/list$', views.show_descriptors, name='list_descriptors'),
+    url(r'^descriptors/(?P<descriptor_type>\w+)/(?P<descriptor_id>[-\w]+)(/$)',
         views.edit_descriptor, name='edit_descriptor'),
-    url(r'^(?P<project_id>\w+)/descriptors/(?P<descriptor_type>\w+)/(?P<descriptor_id>[-\w]+)/delete$',
+    url(r'^descriptors/(?P<descriptor_type>\w+)/(?P<descriptor_id>[-\w]+)/delete$',
         views.delete_descriptor,
         name='delete_descriptor'),
-    url(r'^(?P<project_id>\w+)/descriptors/(?P<descriptor_type>\w+)/(?P<descriptor_id>[-\w]+)/action/(?P<action_name>[-\w]+)',
+    url(r'^descriptors/(?P<descriptor_type>\w+)/(?P<descriptor_id>[-\w]+)/action/(?P<action_name>[-\w]+)',
         views.custom_action,
         name='custom_action'),
-    url(r'^(?P<project_id>\w+)/descriptors/(?P<descriptor_type>\w+)/new$', views.new_descriptor,
+    url(r'^descriptors/(?P<descriptor_type>\w+)/new$', views.new_descriptor,
         name='new_descriptor'),
-
+    url(r'^composer$', views.open_composer, name='open_composer'),
+    url(r'^availablenodes', views.get_available_nodes, name='get_available_nodes'),
+    url(r'^sdn/', include('sdnctrlhandler.urls', namespace='sdns'), name='sdns_base'),
+    url(r'^vims/', include('vimhandler.urls', namespace='vims'), name='vims_base'),
+    url(r'^instances/', include('instancehandler.urls', namespace='instances'), name='instances_base'),
 
 ]
\ No newline at end of file
diff --git a/projecthandler/views.py b/projecthandler/views.py
index 0d50e10..144aa5b 100644
--- a/projecthandler/views.py
+++ b/projecthandler/views.py
@@ -20,11 +20,12 @@
 import yaml
 from django.contrib.auth.decorators import login_required
 from django.http import HttpResponse, JsonResponse
-from django.middleware.csrf import get_token
 from django.shortcuts import render, redirect
+
+from authosm.exceptions import OSMAuthException
 from lib.util import Util
-from projecthandler.osm_model import OsmProject
 from lib.osm.osmclient.clientv2 import Client
+import authosm.utils as osmutils
 
 
 logging.basicConfig(level=logging.DEBUG)
@@ -39,11 +40,12 @@
 @login_required
 def create_new_project(request):
     if request.method == 'POST':
+        user = osmutils.get_user(request)
         client = Client()
         new_project_dict = request.POST.dict()
         keys = ["name"]
         project_data = dict(filter(lambda i: i[0] in keys and len(i[1]) > 0, new_project_dict.items()))
-        result = client.project_create(request.session['token'], project_data)
+        result = client.project_create(user.get_token(), project_data)
         if isinstance(result, dict) and 'error' in result and result['error']:
             print result
             return __response_handler(request, result['data'], url=None,
@@ -54,23 +56,208 @@
 
 @login_required
 def user_projects(request):
+    user = osmutils.get_user(request)
     client = Client()
-    result = client.project_list(request.session['token'])
+    result = client.project_list(user.get_token())
     return render(request, 'projectlist.html', {
         'projects': result['data'] if result and result['error'] is False else [],
     })
 
 
+def open_composer(request):
+    user = osmutils.get_user(request)
+    project_id = user.project_id
+    result = {'project_id': project_id,
+              'vertices': [
+                  {"info": {"type": "vnf", "property": {"custom_label": ""},
+                            "group": []}, "id": "vm"},
+                  {"info": {"type": "vnf", "property": {"custom_label": ""},
+                            "group": []}, "id": "vlan"},
+                  {"info": {"type": "vnf", "property": {"custom_label": ""},
+                            "group": []}, "id": "firewall"},
+                  {"info": {"type": "vnf", "property": {"custom_label": ""},
+                            "group": []}, "id": "ping"},
+
+                  {"info": {"type": "ns_vl", "property": {"custom_label": ""},
+                            "group": []}, "id": "vl1"},
+                  {"info": {"type": "ns_vl", "property": {"custom_label": ""},
+                            "group": []}, "id": "vl2"},
+                  {"info": {"type": "ns_vl", "property": {"custom_label": ""},
+                            "group": []}, "id": "vl3"},
+              ],
+              'edges': [
+                  {"source": "vm", "group": [], "target": "vl3", "view": "ns"},
+                  {"source": "vlan", "group": [], "target": "vl3", "view": "ns"},
+                  {"source": "vlan", "group": [], "target": "vl1", "view": "ns"},
+                  {"source": "firewall", "group": [], "target": "vl1", "view": "ns"},
+                  {"source": "firewall", "group": [], "target": "vl2", "view": "ns"},
+                  {"source": "ping", "group": [], "target": "vl2", "view": "ns"},
+              ],
+              'model': {
+                "layer": {
+
+                    "ns": {
+                        "nodes": {
+                            "vnf": {
+                                "addable": {
+                                    "callback": "addNode"
+                                },
+                                "removable": {
+                                    "callback": "removeNode"
+                                },
+                                "expands": "vnf"
+                            },
+                            "ns_vl": {
+                                "addable": {
+                                    "callback": "addNode"
+                                },
+                                "removable": {
+                                    "callback": "removeNode"
+                                }
+                            },
+
+                        },
+                        "allowed_edges": {
+                            "ns_vl": {
+                                "destination": {
+                                    "vnf": {
+                                        "callback": "addLink",
+                                        "direct_edge": False,
+                                        "removable": {
+                                            "callback": "removeLink"
+                                        }
+                                    }
+                                }
+                            },
+                            "vnf": {
+                                "destination": {
+                                    "ns_vl": {
+                                        "callback": "addLink",
+                                        "direct_edge": False,
+                                        "removable": {
+                                            "callback": "removeLink"
+                                        }
+                                    },
+
+                                }
+                            }
+
+                        }
+                    },
+                    "vnf": {
+                        "nodes": {
+                            "vdu": {
+                                "addable": {
+                                    "callback": "addNode"
+                                },
+                                "removable": {
+                                    "callback": "removeNode"
+                                }
+                            },
+                            "cp": {
+                                "addable": {
+                                    "callback": "addNode"
+                                },
+                                "removable": {
+                                    "callback": "removeNode"
+                                }
+                            },
+
+                        },
+                        "allowed_edges": {
+                            "vdu": {
+                                "destination": {
+                                    "cp": {
+                                        "callback": "addLink",
+                                        "direct_edge": False,
+                                        "removable": {
+                                            "callback": "removeLink"
+                                        }
+                                    }
+                                }
+                            },
+                            "cp": {
+                                "destination": {
+                                    "vdu": {
+                                        "callback": "addLink",
+                                        "direct_edge": False,
+                                        "removable": {
+                                            "callback": "removeLink"
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    },
+                    "name": "OSM",
+                    "version": 1,
+                    "nodes": {
+                        "vnf": {
+                            "label": "vnf"
+                        },
+                        "ns_vl": {
+                            "label": "vl"
+                        },
+                        "cp": {
+                            "label": "cp"
+                        },
+                        "vdu": {
+                            "label": "vdu"
+                        }
+                    },
+                    "description": "osm",
+                    "callback": {
+                        "addNode": {
+                            "file": "osm_controller.js",
+                            "class": "OsmController"
+                        },
+                        "removeNode": {
+                            "file": "osm_controller.js",
+                            "class": "OsmController"
+                        },
+                        "addLink": {
+                            "file": "osm_controller.js",
+                            "class": "OsmController"
+                        },
+                        "removeLink": {
+                            "file": "osm_controller.js",
+                            "class": "OsmController"
+                        }
+                    }
+
+                }
+            }}
+    return __response_handler(request, result, 'project_graph_base.html')
+
+
+def get_available_nodes(request):
+
+    params = request.GET.dict()
+    nodes = {
+        'ns': [{"types": [{"name": "Generic", "id": "vnf"},
+                          {"name": "ping", "id": "vnf"},
+                          {"name": "pong", "id": "vnf"},
+                          {"name": "hackfest1-vm", "id": "vnf"}], "category_name": "Vnf"},
+               {"types": [{"name": "VL", "id": "ns_vl"}], "category_name": "VirtualLink"}],
+        'vnf': [{"types": [{"name": "VDU", "id": "vdu"}], "category_name": "Vdu"},
+                {"types": [{"name": "CP", "id": "cp"}], "category_name": "CP"}]
+    }
+
+    return __response_handler(request, nodes[params['layer']])
+
+
 @login_required
-def open_project(request, project_id=None):
+def open_project(request):
+    user = osmutils.get_user(request)
+    project_id = user.project_id
     try:
-        user = request.user
+
         client = Client()
         ##TODO change with adhoc api call
-        nsd = client.nsd_list(request.session['token'])
-        vnfd = client.vnfd_list(request.session['token'])
-        ns = client.ns_list(request.session['token'])
-        vnf = client.vnf_list(request.session['token'])
+        nsd = client.nsd_list(user.get_token())
+        vnfd = client.vnfd_list(user.get_token())
+        ns = client.ns_list(user.get_token())
+        vnf = client.vnf_list(user.get_token())
         project_overview = {
             'owner': user.username,
             'name': project_id,
@@ -92,9 +279,11 @@
 
 
 @login_required
-def delete_project(request, project_id=None):
+def delete_project(request):
+    user = osmutils.get_user(request)
+    project_id = user.project_id
     client = Client()
-    result = client.project_delete(request.session['token'], project_id)
+    result = client.project_delete(user.get_token(), project_id)
     if isinstance(result, dict) and 'error' in result and result['error']:
         print result
         return __response_handler(request, result['data'], url=None,
@@ -104,14 +293,23 @@
 
 
 @login_required
-def show_descriptors(request, project_id=None, descriptor_type=None):
+def switch_project(request, project_id):
+    user = osmutils.get_user(request)
+    user.switch_project(project_id)
+    return redirect('projects:open_project')
+
+
+@login_required
+def show_descriptors(request, descriptor_type=None):
+    user = osmutils.get_user(request)
+    project_id = user.project_id
     client = Client()
     print request.GET.dict()
     try:
         if descriptor_type == 'nsd':
-            descriptors = client.nsd_list(request.session['token'])
+            descriptors = client.nsd_list(user.get_token())
         elif descriptor_type == 'vnfd':
-            descriptors = client.vnfd_list(request.session['token'])
+            descriptors = client.vnfd_list(user.get_token())
     except Exception as e:
         log.exception(e)
         descriptors = []
@@ -126,14 +324,15 @@
 
 
 @login_required
-def delete_descriptor(request, project_id=None, descriptor_type=None, descriptor_id=None):
-
+def delete_descriptor(request, descriptor_type=None, descriptor_id=None):
+    user = osmutils.get_user(request)
+    project_id = user.project_id
     try:
         client = Client()
         if descriptor_type == 'nsd':
-            result = client.nsd_delete(request.session['token'], descriptor_id)
+            result = client.nsd_delete(user.get_token(), descriptor_id)
         elif descriptor_type == 'vnfd':
-            result = client.vnfd_delete(request.session['token'], descriptor_id)
+            result = client.vnfd_delete(user.get_token(), descriptor_id)
     except Exception as e:
         log.exception(e)
         result = {'error': True, 'data': str(e)}
@@ -142,9 +341,9 @@
     descriptors = {}
     try:
         if descriptor_type == 'nsd':
-            descriptors = client.nsd_list(request.session['token'])
+            descriptors = client.nsd_list(user.get_token())
         elif descriptor_type == 'vnfd':
-            descriptors = client.vnfd_list(request.session['token'])
+            descriptors = client.vnfd_list(user.get_token())
     except Exception as e:
         log.exception(e)
 
@@ -161,8 +360,9 @@
 
 
 @login_required
-def new_descriptor(request, project_id=None, descriptor_type=None):
-
+def new_descriptor(request, descriptor_type=None):
+    user = osmutils.get_user(request)
+    project_id = user.project_id
     page = 'osm/descriptor/descriptor_new.html'
     if request.method == 'GET':
         request_id = request.GET.get('id', '')
@@ -181,9 +381,9 @@
             try:
                 client = Client()
                 if descriptor_type == 'nsd':
-                    result = client.nsd_onboard(request.session['token'], file_uploaded)
+                    result = client.nsd_onboard(user.get_token(), file_uploaded)
                 elif descriptor_type == 'vnfd':
-                    result = client.vnfd_onboard(request.session['token'], file_uploaded)
+                    result = client.vnfd_onboard(user.get_token(), file_uploaded)
                 else:
                     log.debug('Create descriptor: Unknown data type')
                     result = {'error': True, 'data': 'Create descriptor: Unknown data type'}
@@ -202,7 +402,9 @@
 
 
 @login_required
-def edit_descriptor(request, project_id=None, descriptor_id=None, descriptor_type=None):
+def edit_descriptor(request, descriptor_id=None, descriptor_type=None):
+    user = osmutils.get_user(request)
+    project_id = user.project_id
     if request.method == 'POST':
         print "edit_descriptor"
         new_data = request.POST.get('text'),
@@ -216,14 +418,14 @@
                 elif data_type == 'json':
                     new_data = json.loads(request.POST.get('text'))
                 print new_data
-                result = client.nsd_update(request.session['token'], descriptor_id, new_data)
+                result = client.nsd_update(user.get_token(), descriptor_id, new_data)
             elif descriptor_type == 'vnfd':
                 if data_type == 'yaml':
                     new_data = yaml.load(request.POST.get('text'))
                 elif data_type == 'json':
                     new_data = json.loads(request.POST.get('text'))
                 print new_data
-                result = client.vnfd_update(request.session['token'], descriptor_id, new_data)
+                result = client.vnfd_update(user.get_token(), descriptor_id, new_data)
 
             else:
                 log.debug('Update descriptor: Unknown data type')
@@ -244,10 +446,10 @@
         try:
             client = Client()
             if descriptor_type == 'nsd':
-                result = client.nsd_get(request.session['token'], descriptor_id)
+                result = client.nsd_get(user.get_token(), descriptor_id)
                 print result
             elif descriptor_type == 'vnfd':
-                result = client.vnfd_get(request.session['token'], descriptor_id)
+                result = client.vnfd_get(user.get_token(), descriptor_id)
 
                 print result
         except Exception as e:
@@ -269,14 +471,14 @@
 
 
 @login_required
-def get_package_files_list(request, project_id, descriptor_id, descriptor_type):
-    files_list = []
+def get_package_files_list(request, descriptor_id, descriptor_type):
+    user = osmutils.get_user(request)
     try:
         client = Client()
         if descriptor_type == 'nsd':
-            artifacts_res = client.nsd_artifacts(request.session['token'], descriptor_id)
+            artifacts_res = client.nsd_artifacts(user.get_token(), descriptor_id)
         elif descriptor_type == 'vnfd':
-            artifacts_res = client.vnf_packages_artifacts(request.session['token'], descriptor_id)
+            artifacts_res = client.vnf_packages_artifacts(user.get_token(), descriptor_id)
         else:
             return False
 
@@ -289,15 +491,16 @@
     return __response_handler(request, result)
 
 @login_required
-def download_pkg(request, project_id, descriptor_id, descriptor_type):
+def download_pkg(request, descriptor_id, descriptor_type):
+    user = osmutils.get_user(request)
     file_name = "osm_export.tar.gz"
     tar_pkg = None
     try:
         client = Client()
         if descriptor_type == 'nsd':
-            tar_pkg = client.get_nsd_pkg(request.session['token'], descriptor_id)
+            tar_pkg = client.get_nsd_pkg(user.get_token(), descriptor_id)
         elif descriptor_type == 'vnfd':
-            tar_pkg = client.get_vnfd_pkg(request.session['token'], descriptor_id)
+            tar_pkg = client.get_vnfd_pkg(user.get_token(), descriptor_id)
 
     except Exception as e:
         log.exception(e)
@@ -309,10 +512,10 @@
 
 
 @login_required
-def custom_action(request, project_id=None, descriptor_id=None, descriptor_type=None, action_name=None):
+def custom_action(request, descriptor_id=None, descriptor_type=None, action_name=None):
     if request.method == 'GET':
         print "Custom action: " + action_name
-        return globals()[action_name](request, project_id, descriptor_id, descriptor_type)
+        return globals()[action_name](request, descriptor_id, descriptor_type)
 
 
 def __response_handler(request, data_res, url=None, to_redirect=None, *args, **kwargs):
