diff --git a/hosting/locale/de/LC_MESSAGES/django.po b/hosting/locale/de/LC_MESSAGES/django.po
index 36a9cc09..e2bba040 100644
--- a/hosting/locale/de/LC_MESSAGES/django.po
+++ b/hosting/locale/de/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-08-29 14:38+0530\n"
+"POT-Creation-Date: 2017-08-29 17:41+0530\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -343,10 +343,7 @@ msgstr ""
 msgid "Type"
 msgstr "Kartentyp"
 
-msgid "You are not making any payment here."
-msgstr ""
-
-msgid "Add new Card"
+msgid "No Cards found for your account."
 msgstr ""
 
 msgid "Add your public SSH key"
diff --git a/hosting/static/hosting/css/commons.css b/hosting/static/hosting/css/commons.css
index 4710b294..dd81a423 100644
--- a/hosting/static/hosting/css/commons.css
+++ b/hosting/static/hosting/css/commons.css
@@ -271,6 +271,20 @@
   margin-top: 15px;
 }
 
+.settings-container .credit-card-details {
+  padding-bottom: 15px;
+  border-bottom: 1px solid #eee;
+}
+
+.settings-container .credit-card-details h5 {
+  font-weight: bold;
+  font-size: 16px;
+}
+
 .credit-card-form {
   max-width: 360px;
+}
+
+.btn-wide {
+  min-width: 120px;
 }
\ No newline at end of file
diff --git a/hosting/templates/hosting/settings.html b/hosting/templates/hosting/settings.html
index f044b4b6..130234db 100644
--- a/hosting/templates/hosting/settings.html
+++ b/hosting/templates/hosting/settings.html
@@ -17,6 +17,9 @@
                             {% csrf_token %}
                             {% bootstrap_field field show_label=False type='fields'%}
                         {% endfor %}
+                        <div class="form-group text-right">
+                            <button type="submit" class="btn btn-default btn-custom-delete btn-wide">Save</button>
+                        </div>
                     </form>
                 </div>
                 <div class="col-sm-7 col-md-6 creditcard-box dcl-creditcard">
@@ -25,45 +28,14 @@
                     <div>
                         <div>
                             {% if credit_card_data.last4 %}
-                                <form role="form" id="payment-form-with-creditcard" novalidate>
+                                <div class="credit-card-details">
                                     <h5 class="billing-head">{% trans "Credit Card" %}</h5>
                                     <h5 class="membership-lead">{% trans "Last" %} 4: *****{{credit_card_data.last4}}</h5>
                                     <h5 class="membership-lead">{% trans "Type" %}: {{credit_card_data.cc_brand}}</h5>
-                                    <input type="hidden" name="credit_card_needed" value="false"/>
-                                </form>
-                                <div class="row">
-                                    <div class="col-xs-12">
-                                            {% if not messages and not form.non_field_errors %}
-                                                <p class="card-warning-content card-warning-addtional-margin">
-                                                    {% blocktrans %}You are not making any payment here.{% endblocktrans %}
-                                                </p>
-                                            {% endif %}
-                                            <div id='payment_error'>
-                                                {% for message in messages %}
-                                                    {% if 'failed_payment' or 'make_charge_error' in message.tags %}
-                                                     <ul class="list-unstyled"><li>
-                                                         <p class="card-warning-content card-warning-error">{{ message|safe }}</p>
-                                                    </li></ul>
-                                                    {% endif %}
-                                                {% endfor %}
-                                                {% for error in form.non_field_errors %}
-                                                    <p class="card-warning-content card-warning-error">
-                                                        {{ error|escape }}
-                                                    </p>
-                                                {% endfor %}
-                                            </div>
-                                        </div>
-                                    <div class="col-xs-12">
-                                        <div class="col-xs-6 pull-right">
-                                            <button id="payment_button_with_creditcard" class="btn btn-success stripe-payment-btn"
-                                                    type="submit">
-                                                {%trans "Submit" %}
-                                            </button>
-                                        </div>
-                                    </div>
                                 </div>
                             {% else %}
-                                <h4>{% trans "Add new Card" %}</h4>
+                                <h4>{% trans "No Cards found for your account." %}</h4>
+                                {% comment %}
                                 <form action="" id="payment-form-new" class="credit-card-form" method="POST">
                                     <input type="hidden" name="token"/>
                                     <div class="credit-card-goup">
@@ -120,6 +92,7 @@
                                         <p class="payment-errors"></p>
                                     </div>
                                 </form>
+                                {% endcomment %}
                             {% endif %}
                         </div>
                     </div>
diff --git a/hosting/views.py b/hosting/views.py
index a860dfc9..9853078b 100644
--- a/hosting/views.py
+++ b/hosting/views.py
@@ -480,22 +480,14 @@ class SettingsView(LoginRequiredMixin, FormView):
     login_url = reverse_lazy('hosting:login')
     form_class = BillingAddressForm
 
-    def get_form_kwargs(self):
-        current_billing_address = self.request.user.billing_addresses.first()
-        form_kwargs = super(SettingsView, self).get_form_kwargs()
-        if not current_billing_address:
-            return form_kwargs
-
-        form_kwargs.update({
-            'initial': {
-                'cardholder_name': current_billing_address.cardholder_name,
-                'street_address': current_billing_address.street_address,
-                'city': current_billing_address.city,
-                'postal_code': current_billing_address.postal_code,
-                'country': current_billing_address.country,
-            }
-        })
-        return form_kwargs
+    def get_form(self, form_class):
+        """
+        Check if the user already saved contact details. If so, then show
+        the form populated with those details, to let user change them.
+        """
+        return form_class(
+            instance=self.request.user.billing_addresses.first(),
+            **self.get_form_kwargs())
 
     def get_context_data(self, **kwargs):
         context = super(SettingsView, self).get_context_data(**kwargs)
@@ -520,6 +512,22 @@ class SettingsView(LoginRequiredMixin, FormView):
 
         return context
 
+    def post(self, request, *args, **kwargs):
+        form = self.get_form()
+        if form.is_valid():
+            billing_address_data = form.cleaned_data
+            billing_address_data.update({
+                'user': self.request.user.id
+            })
+            billing_address_user_form = UserBillingAddressForm(
+                instance=self.request.user.billing_addresses.first(),
+                data=billing_address_data)
+            billing_address_user_form.save()
+            return self.render_to_response(self.get_context_data())
+        else:
+            billing_address_data = form.cleaned_data
+            return self.form_invalid(form)
+
 
 class PaymentVMView(LoginRequiredMixin, FormView):
     template_name = 'hosting/payment.html'
diff --git a/utils/forms.py b/utils/forms.py
index c521e3ba..7d9d20c0 100644
--- a/utils/forms.py
+++ b/utils/forms.py
@@ -117,6 +117,7 @@ class UserBillingAddressForm(forms.ModelForm):
 
     class Meta:
         model = UserBillingAddress
+        # cardholder name not saved
         fields = ['street_address', 'city', 'postal_code', 'country', 'user']
         labels = {
             'street_address': _('Street Building'),