diff --git a/datacenterlight/cms_models.py b/datacenterlight/cms_models.py
index dd6a165f..5a8d7ac8 100644
--- a/datacenterlight/cms_models.py
+++ b/datacenterlight/cms_models.py
@@ -26,6 +26,10 @@ class CMSIntegration(models.Model):
     navbar_placeholder = PlaceholderField(
         'datacenterlight_navbar', related_name='dcl-navbar-placeholder+'
     )
+    calculator_placeholder = PlaceholderField(
+        'datacenterlight_calculator',
+        related_name='dcl-calculator-placeholder+'
+    )
     domain = models.ForeignKey(Site, null=True, blank=True)
 
     class Meta:
@@ -288,7 +292,7 @@ class DCLSectionPromoPluginModel(CMSPlugin):
         return extra_classes
 
 
-class DCLCustomPricingModel(CMSPlugin):
+class DCLCalculatorPluginModel(CMSPlugin):
     pricing = models.ForeignKey(
         VMPricing,
         related_name="dcl_custom_pricing_vm_pricing",
diff --git a/datacenterlight/cms_plugins.py b/datacenterlight/cms_plugins.py
index 19dc0b39..0096faa5 100644
--- a/datacenterlight/cms_plugins.py
+++ b/datacenterlight/cms_plugins.py
@@ -1,3 +1,4 @@
+from cms.models.pluginmodel import CMSPlugin
 from cms.plugin_base import CMSPluginBase
 from cms.plugin_pool import plugin_pool
 
@@ -6,7 +7,7 @@ from .cms_models import (
     DCLFooterPluginModel, DCLLinkPluginModel, DCLNavbarDropdownPluginModel,
     DCLSectionIconPluginModel, DCLSectionImagePluginModel,
     DCLSectionPluginModel, DCLNavbarPluginModel,
-    DCLSectionPromoPluginModel, DCLCustomPricingModel
+    DCLSectionPromoPluginModel, DCLCalculatorPluginModel
 )
 from .models import VMTemplate, VMPricing
 
@@ -21,7 +22,7 @@ class DCLSectionPlugin(CMSPluginBase):
     allow_children = True
     child_classes = [
         'DCLSectionIconPlugin', 'DCLSectionImagePlugin',
-        'DCLSectionPromoPlugin', 'UngleichHTMLPlugin'
+        'DCLSectionPromoPlugin', 'UngleichHTMLPlugin', 'DCLCalculatorPlugin'
     ]
 
     def render(self, context, instance, placeholder):
@@ -30,14 +31,18 @@ class DCLSectionPlugin(CMSPluginBase):
         )
         context['children_to_side'] = []
         context['children_to_content'] = []
+        context['children_calculator'] = []
         if instance.child_plugin_instances is not None:
             right_children = [
                 'DCLSectionImagePluginModel',
-                'DCLSectionIconPluginModel'
+                'DCLSectionIconPluginModel',
             ]
             for child in instance.child_plugin_instances:
+                print(child.__dict__)
                 if child.__class__.__name__ in right_children:
                     context['children_to_side'].append(child)
+                elif child.__class__.__name__ == 'CMSPlugin':
+                    context['children_calculator'].append(child)
                 else:
                     context['children_to_content'].append(child)
         return context
@@ -75,50 +80,42 @@ class DCLSectionPromoPlugin(CMSPluginBase):
 @plugin_pool.register_plugin
 class DCLCalculatorPlugin(CMSPluginBase):
     module = "Datacenterlight"
-    name = "DCL Calculator Section Plugin"
-    model = DCLSectionPluginModel
+    name = "DCL Calculator Plugin"
+    model = DCLCalculatorPluginModel
     render_template = "datacenterlight/cms/calculator.html"
     cache = False
-    allow_children = True
-    child_classes = [
-        'DCLSectionPromoPlugin', 'UngleichHTMLPlugin', 'DCLCustomPricingPlugin'
-    ]
+    require_parent = True
 
     def render(self, context, instance, placeholder):
         context = super(DCLCalculatorPlugin, self).render(
             context, instance, placeholder
         )
         context['templates'] = VMTemplate.objects.all()
-        context['children_to_content'] = []
-        pricing_plugin_model = None
-        if instance.child_plugin_instances is not None:
-            context['children_to_content'].extend(
-                instance.child_plugin_instances
-            )
-            for child in instance.child_plugin_instances:
-                if child.__class__.__name__ == 'DCLCustomPricingModel':
-                    # The second clause is just to make sure we pick up the
-                    # most recent CustomPricing, if more than one is present
-                    if (pricing_plugin_model is None or child.pricing_id >
-                            pricing_plugin_model.model.pricing_id):
-                        pricing_plugin_model = child
-
-        if pricing_plugin_model:
-            context['vm_pricing'] = VMPricing.get_vm_pricing_by_name(
-                name=pricing_plugin_model.pricing.name
-            )
-        else:
-            context['vm_pricing'] = VMPricing.get_default_pricing()
+    #     pricing_plugin_model = None
+    #     if instance.child_plugin_instances is not None:
+    #         for child in instance.child_plugin_instances:
+    #             if child.__class__.__name__ == 'DCLCustomPricingModel':
+    #                 # The second clause is just to make sure we pick up the
+    #                 # most recent CustomPricing, if more than one is present
+    #                 if (pricing_plugin_model is None or child.pricing_id >
+    #                         pricing_plugin_model.model.pricing_id):
+    #                     pricing_plugin_model = child
 
+    #     if pricing_plugin_model:
+    #         context['vm_pricing'] = VMPricing.get_vm_pricing_by_name(
+    #             name=pricing_plugin_model.pricing.name
+    #         )
+    #     else:
+    #         context['vm_pricing'] = VMPricing.get_default_pricing()
         return context
 
 
-@plugin_pool.register_plugin
-class DCLCustomPricingPlugin(CMSPluginBase):
-    module = "Datacenterlight"
-    name = "DCL Custom Pricing Plugin"
-    model = DCLCustomPricingModel
-    render_plugin = False
+# @plugin_pool.register_plugin
+# class DCLCustomPricingPlugin(CMSPluginBase):
+#     module = "Datacenterlight"
+#     name = "DCL Custom Pricing Plugin"
+#     model = DCLCustomPricingModel
+#     render_plugin = False
 
 
 @plugin_pool.register_plugin
diff --git a/datacenterlight/migrations/0021_cmsintegration_calculator_placeholder.py b/datacenterlight/migrations/0021_cmsintegration_calculator_placeholder.py
new file mode 100644
index 00000000..3ebbb469
--- /dev/null
+++ b/datacenterlight/migrations/0021_cmsintegration_calculator_placeholder.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.9.4 on 2018-04-25 09:20
+from __future__ import unicode_literals
+
+import cms.models.fields
+from django.db import migrations
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('datacenterlight', '0020_merge'),
+        ('cms', '0014_auto_20160404_1908'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='cmsintegration',
+            name='calculator_placeholder',
+            field=cms.models.fields.PlaceholderField(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE,
+                                                     related_name='dcl-calculator-placeholder+', slotname='datacenterlight_calculator', to='cms.Placeholder'),
+        ),
+        migrations.RenameModel(
+            old_name='DCLCustomPricingModel',
+            new_name='DCLCalculatorPluginModel',
+        ),
+    ]
diff --git a/datacenterlight/static/datacenterlight/css/landing-page.css b/datacenterlight/static/datacenterlight/css/landing-page.css
index 8e9f2c2d..f241ed71 100755
--- a/datacenterlight/static/datacenterlight/css/landing-page.css
+++ b/datacenterlight/static/datacenterlight/css/landing-page.css
@@ -776,7 +776,7 @@ textarea {
   width: 100%;
   margin: 0 auto;
   background: #fff;
-  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1), 0 0 6px rgba(0, 0, 0, 0.15);
   padding-bottom: 40px;
   border-radius: 7px;
   text-align: center;
@@ -929,7 +929,7 @@ textarea {
 }
 
 
-@media(max-width:991px) {
+@media(max-width:767px) {
   .section-sm-center .split-text,
   .section-sm-center .space {
     text-align: center !important;
diff --git a/datacenterlight/templates/datacenterlight/cms/calculator.html b/datacenterlight/templates/datacenterlight/cms/calculator.html
index 27d1f89c..7b123a72 100644
--- a/datacenterlight/templates/datacenterlight/cms/calculator.html
+++ b/datacenterlight/templates/datacenterlight/cms/calculator.html
@@ -1,16 +1,5 @@
-<div class="split-section {{ instance.get_extra_classes }}" id="{{ instance.html_id }}">
-  <div class="container">
-    <div class="row">
-      <div class="col-sm-6 {% if instance.text_direction == 'right' %}col-sm-push-6{% endif %} split-text">
-        {% include "datacenterlight/cms/includes/_section_split_content.html" %}
-      </div>
-      <div class="col-sm-6 {% if instance.text_direction == 'right' %}col-sm-pull-6{% endif %}">
-        <div class="price-calc-section">
-          <div class="card">
-            {% include "datacenterlight/includes/_calculator_form.html" %}
-          </div>
-        </div>
-      </div>
-    </div>
+<div class="price-calc-section">
+  <div class="card">
+    {% include "datacenterlight/includes/_calculator_form.html" with vm_pricing=instance.pricing %}
   </div>
 </div>
\ No newline at end of file
diff --git a/datacenterlight/templates/datacenterlight/cms/section.html b/datacenterlight/templates/datacenterlight/cms/section.html
index 5a420a99..4438cf7d 100644
--- a/datacenterlight/templates/datacenterlight/cms/section.html
+++ b/datacenterlight/templates/datacenterlight/cms/section.html
@@ -2,17 +2,24 @@
 
 <section class="split-section {{ instance.get_extra_classes }}" id="{{ instance.html_id }}">
   <div class="container">
-    {% if children_to_side|length %}
+    {% if children_to_side|length or children_calculator|length %}
       <div class="row">
         <div class="col-sm-6 {% if instance.text_direction == 'right' %}col-sm-push-6{% endif %} split-text">
           {% include "datacenterlight/cms/includes/_section_split_content.html" %}
         </div>
         <div class="col-sm-6 {% if instance.text_direction == 'right' %}col-sm-pull-6{% endif %} split-figure">
-          <div class="section-figure">
-            {% for plugin in children_to_side %}
+          {% if children_calculator|length %}
+            {% for plugin in children_calculator %}
               {% render_plugin plugin %}
             {% endfor %}
-          </div>
+          {% endif %}
+          {% if children_to_side %}
+            <div class="section-figure">
+              {% for plugin in children_to_side %}
+                {% render_plugin plugin %}
+              {% endfor %}
+            </div>
+          {% endif %}
         </div>
       </div>
     {% else %}
diff --git a/datacenterlight/templates/datacenterlight/includes/_calculator_form.html b/datacenterlight/templates/datacenterlight/includes/_calculator_form.html
index e3fe8676..656e78e7 100644
--- a/datacenterlight/templates/datacenterlight/includes/_calculator_form.html
+++ b/datacenterlight/templates/datacenterlight/includes/_calculator_form.html
@@ -17,7 +17,7 @@
         <h3>{% trans "VM hosting" %} </h3>
     </div>
     <div class="price">
-        <span id="total">15</span>
+        <span id="total"></span>
         <span>CHF/{% trans "month" %}</span>
         {% if vm_pricing.vat_inclusive %}
         <div class="price-text">
@@ -94,4 +94,4 @@
     </div>
     <input type="hidden" name="pricing_name" value="{% if vm_pricing.name %}{{vm_pricing.name}}{% else %}unknown{% endif%}"></input>
     <input type="submit" class="btn btn-primary disabled" value="{% trans 'Continue' %}"></input>
-</form>
+</form>
\ No newline at end of file
diff --git a/dynamicweb/settings/base.py b/dynamicweb/settings/base.py
index 58c6b8e2..da3f0941 100644
--- a/dynamicweb/settings/base.py
+++ b/dynamicweb/settings/base.py
@@ -352,6 +352,18 @@ CMS_PLACEHOLDER_CONF = {
             },
         ]
     },
+    'datacenterlight_calculator': {
+        'name': _('Datacenterlight Calculator'),
+        'plugins': ['DCLCalculatorPlugin'],
+        'default_plugins': [
+            {
+                'plugin_type': 'DCLCalculatorPlugin',
+                'values': {
+                    'pricing_id': 1
+                },
+            },
+        ]
+    },
 }
 
 CMS_PERMISSION = True
diff --git a/hosting/static/hosting/css/price_calculator.css b/hosting/static/hosting/css/price_calculator.css
index 316b12ca..61fb277b 100644
--- a/hosting/static/hosting/css/price_calculator.css
+++ b/hosting/static/hosting/css/price_calculator.css
@@ -1,7 +1,7 @@
 /* Create VM calculator */
 
 .price-calc-section {
-    padding: 80px 40px !important;
+    padding: 20px 0 !important;
 }
 
 @media (max-width: 768px) {
@@ -40,7 +40,7 @@
 }
 
 .price-calc-section .card {
-    width: 50%;
+    /* width: 50%; */
     margin: 0 auto;
     background: #fff;
     box-shadow: 1px 3px 6px 2px rgba(0, 0, 0, 0.2);
@@ -52,7 +52,7 @@
 
 @media (min-width: 768px) {
     .price-calc-section .card {
-        margin-left: 0;
+        /* margin-left: 0; */
     }
 }
 
diff --git a/hosting/static/hosting/js/initial.js b/hosting/static/hosting/js/initial.js
index 1fca9735..35ecaadf 100644
--- a/hosting/static/hosting/js/initial.js
+++ b/hosting/static/hosting/js/initial.js
@@ -153,4 +153,84 @@ $( document ).ready(function() {
             $('.navbar-fixed-top.topnav').css('padding-right', topnavPadding-scrollbarWidth);
         }
     });
+
+    /* ---------------------------------------------
+     Scripts initialization
+     --------------------------------------------- */
+    var cardPricing = {
+        'cpu': {
+            'id': 'coreValue',
+            'value': 1,
+            'min': 1,
+            'max': 48,
+            'interval': 1
+        },
+        'ram': {
+            'id': 'ramValue',
+            'value': 2,
+            'min': 1,
+            'max': 200,
+            'interval': 1
+        },
+        'storage': {
+            'id': 'storageValue',
+            'value': 10,
+            'min': 10,
+            'max': 2000,
+            'interval': 10
+        }
+    };
+
+    function _initPricing() {
+        _fetchPricing();
+
+        $('.fa-minus-circle.left').click(function(event) {
+            var data = $(this).data('minus');
+
+            if (cardPricing[data].value > cardPricing[data].min) {
+                cardPricing[data].value = Number(cardPricing[data].value) - cardPricing[data].interval;
+            }
+            _fetchPricing();
+        });
+        $('.fa-plus-circle.right').click(function(event) {
+            var data = $(this).data('plus');
+            if (cardPricing[data].value < cardPricing[data].max) {
+                cardPricing[data].value = Number(cardPricing[data].value) + cardPricing[data].interval;
+            }
+            _fetchPricing();
+        });
+
+        $('.input-price').change(function() {
+            var data = $(this).attr("name");
+            cardPricing[data].value = $('input[name=' + data + ']').val();
+            _fetchPricing();
+        });
+    }
+
+    function _fetchPricing() {
+        Object.keys(cardPricing).map(function(element) {
+            $('input[name=' + element + ']').val(cardPricing[element].value);
+        });
+        _calcPricing();
+    }
+
+    function _calcPricing() {
+        if(typeof window.coresUnitPrice === 'undefined'){
+            window.coresUnitPrice = 5;
+        }
+        if(typeof window.ramUnitPrice === 'undefined'){
+            window.coresUnitPrice = 2;
+        }
+        if(typeof window.ssdUnitPrice === 'undefined'){
+            window.ssdUnitPrice = 0.6;
+        }
+        console.log(coresUnitPrice, ramUnitPrice, ssdUnitPrice, cardPricing)
+        var total = (cardPricing['cpu'].value * window.coresUnitPrice) +
+                    (cardPricing['ram'].value * window.ramUnitPrice) +
+                    (cardPricing['storage'].value * window.ssdUnitPrice);
+        total = parseFloat(total.toFixed(2));
+        $("#total").text(total);
+    }
+
+    _initPricing();
 });
\ No newline at end of file
diff --git a/hosting/templates/hosting/base_short.html b/hosting/templates/hosting/base_short.html
index 9c1538db..63f2b499 100644
--- a/hosting/templates/hosting/base_short.html
+++ b/hosting/templates/hosting/base_short.html
@@ -1,5 +1,5 @@
-{% load staticfiles bootstrap3%}
-{% load i18n %}
+{% load staticfiles i18n cms_tags sekizai_tags %}
+
 <!DOCTYPE html>
 <html lang="en">
 
@@ -29,6 +29,9 @@
     {% block css_extra %}
     {% endblock css_extra %}
 
+    {% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %}
+    {% render_block "js" postprocessor "compressor.contrib.sekizai.compress" %}
+
     <!-- Custom Fonts -->
     <link href='//fonts.googleapis.com/css?family=Raleway' rel='stylesheet' type='text/css'>
     <link href="{% static 'datacenterlight/font-awesome/css/font-awesome.min.css' %}" rel="stylesheet" type="text/css">
@@ -48,7 +51,7 @@
 </head>
 
 <body>
-
+    {% cms_toolbar %}
 
     {% block navbar %}
         {% include "hosting/includes/_navbar_user.html" %}
diff --git a/hosting/templates/hosting/create_virtual_machine.html b/hosting/templates/hosting/create_virtual_machine.html
index a614dd78..5c4bc3cf 100644
--- a/hosting/templates/hosting/create_virtual_machine.html
+++ b/hosting/templates/hosting/create_virtual_machine.html
@@ -1,7 +1,9 @@
 {% extends "hosting/base_short.html" %}
-{% load staticfiles bootstrap3 i18n %}
+{% load staticfiles bootstrap3 i18n cms_tags %}
 
 {% block content %}
+
+
 <div class="dashboard-container create-vm-container">
     <div class="row">
         <div class="col-sm-5">
@@ -17,14 +19,8 @@
                 {% endif %}
           </div>
         </div>
-        <div class="col-sm-6">
-            <div class="price-calc-section no-padding">
-                <div class="landing card">
-                    <div class="caption">
-                        {% include "hosting/calculator_form.html" %}
-                    </div>
-                </div>
-            </div>
+        <div class="col-sm-6 hosting-calculator">
+            {% render_placeholder cms_integration.calculator_placeholder %}
         </div>
     </div>
 </div>
diff --git a/hosting/views.py b/hosting/views.py
index ec36836a..b288be3b 100644
--- a/hosting/views.py
+++ b/hosting/views.py
@@ -32,6 +32,7 @@ from stored_messages.settings import stored_messages_settings
 
 from datacenterlight.models import VMTemplate
 from datacenterlight.tasks import create_vm_task
+from datacenterlight.utils import get_cms_integration
 from membership.models import CustomUser, StripeCustomer
 from opennebula_api.models import OpenNebulaManager
 from opennebula_api.serializers import (
@@ -1003,7 +1004,11 @@ class CreateVirtualMachinesView(LoginRequiredMixin, View):
 
     @method_decorator(decorators)
     def get(self, request, *args, **kwargs):
-        context = {'templates': VMTemplate.objects.all()}
+        print(get_cms_integration('default'))
+        context = {
+            'templates': VMTemplate.objects.all(),
+            'cms_integration': get_cms_integration('default'),
+        }
         return render(request, self.template_name, context)
 
     @method_decorator(decorators)