diff --git a/descriptorhandler/template/descriptorlist.html b/descriptorhandler/template/descriptorlist.html
index 5285125..bbe8f21 100644
--- a/descriptorhandler/template/descriptorlist.html
+++ b/descriptorhandler/template/descriptorlist.html
@@ -7,12 +7,10 @@
             <h3 class="box-title">
             </h3>
             <div class="box-tools">
-                {% comment %}<div class="btn-group">
-                    <button type="button" class="btn btn-default" data-container="body"
-                    data-toggle="tooltip" data-placement="top" title="Composer"
-                    onclick="">
-                <i class="fa fa-paint-brush"></i> <span> Composer</span></button>
-                </div>{% endcomment %}
+                <div class="btn-group">
+                    <button type="button" class="btn btn-default" data-toggle="modal" data-target="#modal_new_package_name_chooser" >
+                <i class="fa fa-paint-brush"></i> <span> Compose a new {{ descriptor_type|upper }}</span></button>
+                </div>
             </div>
         </div>
         <div class="box-body">
diff --git a/descriptorhandler/template/modal/choose_node_id.html b/descriptorhandler/template/modal/choose_node_id.html
deleted file mode 100644
index 91c4d20..0000000
--- a/descriptorhandler/template/modal/choose_node_id.html
+++ /dev/null
@@ -1 +0,0 @@
-{% extends "descriptor/modal/choose_node_id.html" %}
\ No newline at end of file
diff --git a/descriptorhandler/template/modal/choose_package_name.html b/descriptorhandler/template/modal/choose_package_name.html
new file mode 100644
index 0000000..2211026
--- /dev/null
+++ b/descriptorhandler/template/modal/choose_package_name.html
@@ -0,0 +1,35 @@
+<div class="modal" id="modal_new_package_name_chooser">
+    <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">Create new Package</h4>
+            </div>
+            <form id="formCreatePackage" action='{% url "projects:descriptors:create_package_empty" descriptor_type=descriptor_type %}'
+                  class="form-horizontal"
+                  method="post" enctype="multipart/form-data">
+                {% csrf_token %}
+                <div class="modal-body" id="modal_new_package_name_chooser">
+                    <div class="form-group">
+                        <label for="package_name" class="col-sm-3 control-label">Package name *</label>
+                        <div class="col-sm-6">
+                            <input class="form-control" id="package_name" name="name"
+                                   placeholder="name" required>
+                        </div>
+                    </div>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-default pull-left" data-dismiss="modal">Cancel</button>
+                    <button class="btn btn-primary"
+                            data-loading-text="<i class='fa fa-circle-o-notch fa-spin'></i> Creating..."
+                            id="create_new_user">Create
+                    </button>
+
+                </div>
+            </form>
+        </div>
+        <!-- /.modal-content -->
+    </div>
+    <!-- /.modal-dialog -->
+</div>
\ No newline at end of file
diff --git a/descriptorhandler/urls.py b/descriptorhandler/urls.py
index b0972d9..481211a 100644
--- a/descriptorhandler/urls.py
+++ b/descriptorhandler/urls.py
@@ -19,9 +19,9 @@
 
 urlpatterns = [
     url(r'(?P<descriptor_type>\w+)/list$', views.show_descriptors, name='list_descriptors'),
+    url(r'(?P<descriptor_type>\w+)/create', views.create_package_empty, name='create_package_empty'),
     url(r'(?P<descriptor_type>\w+)/(?P<descriptor_id>[-\w]+)(/$)', views.edit_descriptor, name='edit_descriptor'),
-    url(r'(?P<descriptor_type>\w+)/(?P<descriptor_id>[-\w]+)/delete$', views.delete_descriptor,
-        name='delete_descriptor'),
+    url(r'(?P<descriptor_type>\w+)/(?P<descriptor_id>[-\w]+)/delete$', views.delete_descriptor, name='delete_descriptor'),
     url(r'(?P<descriptor_type>\w+)/(?P<descriptor_id>[-\w]+)/clone', views.clone_descriptor, name='clone_descriptor'),
     url(r'(?P<descriptor_type>\w+)/(?P<descriptor_id>[-\w]+)/addElement/(?P<element_type>\w+)', views.addElement,
         name='addElement'),
diff --git a/descriptorhandler/views.py b/descriptorhandler/views.py
index 064b5a5..fda9aff 100644
--- a/descriptorhandler/views.py
+++ b/descriptorhandler/views.py
@@ -90,12 +90,35 @@
             'message': 'An error occurred while processing your request.' if result and result['error'] is True else "Record deleted successfully"}
     }, url)
 
+@login_required
+def create_package_empty(request, descriptor_type=None):
+    user = osmutils.get_user(request)
+    pkg_name = request.POST.get('name', '')
+    try:
+        client = Client()
+        if descriptor_type == 'nsd':
+            result = client.nsd_create_pkg_base(user.get_token(), pkg_name)
+        elif descriptor_type == 'vnfd':
+            result = client.vnfd_create_pkg_base(user.get_token(), pkg_name)
+        else:
+            log.debug('Update descriptor: Unknown data type')
+            result = {'error': True, 'data': 'Update descriptor: Unknown data type'}
+    except Exception as e:
+        log.exception(e)
+        result = {'error': True, 'data': str(e)}
+
+    if result['error'] == True:
+        return __response_handler(request, result['data'], url=None,
+                                  status=result['data']['status'] if 'status' in result['data'] else 500)
+    else:
+        result['data']['type'] = descriptor_type
+        return __response_handler(request, result, url=None, status=200)
+
 
 @login_required
 def clone_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':
@@ -111,7 +134,6 @@
     if result['error'] == True:
         return __response_handler(request, result['data'], url=None,
                                   status=result['data']['status'] if 'status' in result['data'] else 500)
-
     else:
         return __response_handler(request, {}, url=None, status=200)
 
@@ -319,7 +341,6 @@
                 result = client.nsd_get(user.get_token(), descriptor_id)
             elif descriptor_type == 'vnfd':
                 result = client.vnfd_get(user.get_token(), descriptor_id)
-
         except Exception as e:
             log.exception(e)
             result = {'error': True, 'data': str(e)}
