diff --git a/ring-android/app/app.iml b/ring-android/app/app.iml
index 3502718..279e649 100644
--- a/ring-android/app/app.iml
+++ b/ring-android/app/app.iml
@@ -70,6 +70,7 @@
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.1/jars" />
+      <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/cardview-v7/23.0.1/jars" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/design/23.0.1/jars" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v13/23.0.1/jars" />
       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/23.0.1/jars" />
@@ -92,12 +93,13 @@
     </content>
     <orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
-    <orderEntry type="library" exported="" name="ormlite-android-4.48" level="project" />
     <orderEntry type="library" exported="" name="libphonenumber-7.0.11" level="project" />
+    <orderEntry type="library" exported="" name="ormlite-android-4.48" level="project" />
     <orderEntry type="library" exported="" name="pagerslidingtabstrip-1.0.1" level="project" />
     <orderEntry type="library" exported="" name="ormlite-core-4.48" level="project" />
     <orderEntry type="library" exported="" name="support-v13-23.0.1" level="project" />
     <orderEntry type="library" exported="" name="stickylistheaders-2.7.0" level="project" />
+    <orderEntry type="library" exported="" name="cardview-v7-23.0.1" level="project" />
     <orderEntry type="library" exported="" name="support-v4-23.0.1" level="project" />
     <orderEntry type="library" exported="" name="robotium-solo-5.4.1" level="project" />
     <orderEntry type="library" exported="" name="design-23.0.1" level="project" />
diff --git a/ring-android/app/build.gradle b/ring-android/app/build.gradle
index 2ca1c19..cf33e4a 100644
--- a/ring-android/app/build.gradle
+++ b/ring-android/app/build.gradle
@@ -6,6 +6,7 @@
     compile 'com.j256.ormlite:ormlite-android:4.48'
     compile 'com.android.support:support-v13:23.0.+'
     compile 'com.android.support:design:23.0.+'
+    compile 'com.android.support:cardview-v7:23.0.+'
     compile 'com.jayway.android.robotium:robotium-solo:5.4.1'
     compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
     compile 'com.googlecode.libphonenumber:libphonenumber:7.0.11'
diff --git a/ring-android/app/src/main/AndroidManifest.xml b/ring-android/app/src/main/AndroidManifest.xml
index 999fbc0..4ba66eb 100644
--- a/ring-android/app/src/main/AndroidManifest.xml
+++ b/ring-android/app/src/main/AndroidManifest.xml
@@ -105,7 +105,7 @@
         <activity
             android:name=".client.AccountWizard"
             android:screenOrientation="portrait"
-            android:theme="@style/AppThemeWithoutOverlay" >
+            android:theme="@style/AppThemeWithoutOverlayCompat" >
             <meta-data
                 android:name="android.support.PARENT_ACTIVITY"
                 android:value="cx.ring.client.AccountEditionActivity" />
diff --git a/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java b/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java
index 43cd2ba..931f47b 100644
--- a/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java
+++ b/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java
@@ -1,7 +1,8 @@
 /*
- *  Copyright (C) 2004-2014 Savoir-Faire Linux Inc.
+ *  Copyright (C) 2004-2015 Savoir-Faire Linux Inc.
  *
  *  Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+ *  Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -16,22 +17,10 @@
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- *  Additional permission under GNU GPL version 3 section 7:
- *
- *  If you modify this program, or any covered work, by linking or
- *  combining it with the OpenSSL project's OpenSSL library (or a
- *  modified version of that library), containing parts covered by the
- *  terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
- *  grants you additional permission to convey the resulting work.
- *  Corresponding Source for a non-source form of such a combination
- *  shall include the source code for the parts of OpenSSL used as well
- *  as that of the covered work.
  */
 
 package cx.ring.client;
 
-import android.app.Activity;
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.content.ComponentName;
@@ -42,27 +31,28 @@
 import android.os.IBinder;
 import android.support.v13.app.FragmentStatePagerAdapter;
 import android.support.v4.view.ViewPager;
+import android.support.v7.app.AppCompatActivity;
 import android.util.Log;
 import android.view.MenuItem;
 import cx.ring.R;
 import cx.ring.fragments.AccountCreationFragment;
 import cx.ring.service.ISipService;
-import cx.ring.service.SipService;
+import cx.ring.service.LocalService;
 
 import java.util.ArrayList;
 import java.util.Locale;
 
-public class AccountWizard extends Activity implements AccountCreationFragment.Callbacks {
+public class AccountWizard extends AppCompatActivity implements LocalService.Callbacks {
     static final String TAG = "AccountWizard";
     private boolean mBound = false;
-    private ISipService service;
+    private LocalService service;
     ViewPager mViewPager;
 
     private ServiceConnection mConnection = new ServiceConnection() {
 
         @Override
         public void onServiceConnected(ComponentName className, IBinder binder) {
-            service = ISipService.Stub.asInterface(binder);
+            service = ((LocalService.LocalBinder) binder).getService();
             mBound = true;
         }
 
@@ -79,14 +69,14 @@
         setContentView(R.layout.activity_wizard);
         mViewPager = (ViewPager) findViewById(R.id.pager);
 
-        getActionBar().setDisplayHomeAsUpEnabled(true);
-        getActionBar().setHomeButtonEnabled(true);
+        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+        getSupportActionBar().setHomeButtonEnabled(true);
         SectionsPagerAdapter mSectionsPagerAdapter = new SectionsPagerAdapter(AccountWizard.this, getFragmentManager());
         mViewPager.setAdapter(mSectionsPagerAdapter);
 
         if (!mBound) {
             Log.i(TAG, "onCreate: Binding service...");
-            Intent intent = new Intent(this, SipService.class);
+            Intent intent = new Intent(this, LocalService.class);
             bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
         }
 
@@ -168,7 +158,12 @@
     }
 
     @Override
-    public ISipService getService() {
+    public ISipService getRemoteService() {
+        return service.getRemoteService();
+    }
+
+    @Override
+    public LocalService getService() {
         return service;
     }
 
diff --git a/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java b/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
index fcbabd3..ffd2c5c 100644
--- a/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
+++ b/ring-android/app/src/main/java/cx/ring/client/HomeActivity.java
@@ -59,10 +59,12 @@
 import android.app.FragmentManager;
 
 import android.app.FragmentTransaction;
+import android.content.BroadcastReceiver;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.ServiceConnection;
 import android.content.pm.PackageManager;
 import android.content.res.AssetManager;
@@ -96,6 +98,7 @@
 
     private LocalService service;
     private boolean mBound = false;
+    private boolean mNoAccountOpened = false;
 
     private NavigationView fMenu;
     private MenuFragment fMenuHead = null;
@@ -136,6 +139,12 @@
         setContentView(R.layout.activity_home);
 
         // Bind to LocalService
+
+        IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(LocalService.ACTION_CONF_UPDATE);
+        intentFilter.addAction(LocalService.ACTION_ACCOUNT_UPDATE);
+        registerReceiver(receiver, intentFilter);
+
         if (!mBound && LocalService.checkContactPermissions(this)) {
             Log.i(TAG, "onStart: Binding service...");
             /*Intent intent = new Intent(this, SipService.class);
@@ -177,6 +186,21 @@
 
     }
 
+    final BroadcastReceiver receiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            Log.w(TAG, "onReceive " + intent.getAction());
+            switch (intent.getAction()) {
+                case LocalService.ACTION_ACCOUNT_UPDATE:
+                    if (!mNoAccountOpened && service.getAccounts().isEmpty()) {
+                        mNoAccountOpened = true;
+                        startActivityForResult(new Intent().setClass(HomeActivity.this, AccountWizard.class), AccountsManagementFragment.ACCOUNT_CREATE_REQUEST);
+                    }
+                    break;
+            }
+        }
+    };
+
     @Override
     protected void onPostCreate(Bundle savedInstanceState) {
         super.onPostCreate(savedInstanceState);
@@ -346,6 +370,7 @@
     @Override
     protected void onDestroy() {
         super.onDestroy();
+        unregisterReceiver(receiver);
         if (mBound) {
             unbindService(mConnection);
             mBound = false;
@@ -378,7 +403,6 @@
             LocalService.LocalBinder binder = (LocalService.LocalBinder) s;
             service = binder.getService();
 
-            //service = ISipService.Stub.asInterface(binder);
             fContent = new CallListFragment();
             if (fMenuHead != null)
                 fMenu.removeHeaderView(fMenuHead.getView());
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/AccountCreationFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/AccountCreationFragment.java
index 14c5d09..2419666 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/AccountCreationFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/AccountCreationFragment.java
@@ -1,3 +1,23 @@
+/*
+ *  Copyright (C) 2004-2015 Savoir-Faire Linux Inc.
+ *
+ *  Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
 package cx.ring.fragments;
 
 import java.util.HashMap;
@@ -14,6 +34,7 @@
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.RemoteException;
+import android.support.v7.app.AppCompatActivity;
 import android.text.TextUtils;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
@@ -26,6 +47,7 @@
 import android.widget.TextView.OnEditorActionListener;
 import android.widget.Toast;
 
+import cx.ring.service.LocalService;
 import cx.ring.views.PasswordEditText;
 
 public class AccountCreationFragment extends Fragment {
@@ -43,24 +65,8 @@
     private EditText mHostnameView;
     private EditText mUsernameView;
     private PasswordEditText mPasswordView;
-    private Spinner mAccountTypeView;
-    private ViewGroup mFieldsSip;
-    private ViewGroup mFieldsRing;
 
-    private Callbacks mCallbacks = sDummyCallbacks;
-    private static Callbacks sDummyCallbacks = new Callbacks() {
-
-        @Override
-        public ISipService getService() {
-            return null;
-        }
-    };
-
-    public interface Callbacks {
-
-        public ISipService getService();
-
-    }
+    private LocalService.Callbacks mCallbacks = LocalService.DUMMY_CALLBACKS;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -71,62 +77,39 @@
     public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
         View inflatedView = inflater.inflate(R.layout.frag_account_creation, parent, false);
 
-        mFieldsSip = (ViewGroup) inflatedView.findViewById(R.id.sip_fields);
-        mFieldsRing = (ViewGroup) inflatedView.findViewById(R.id.ring_fields);
-
         mAliasView = (EditText) inflatedView.findViewById(R.id.alias);
         mHostnameView = (EditText) inflatedView.findViewById(R.id.hostname);
         mUsernameView = (EditText) inflatedView.findViewById(R.id.username);
         mPasswordView = (PasswordEditText) inflatedView.findViewById(R.id.password);
-        mAccountTypeView = (Spinner) inflatedView.findViewById(R.id.account_type);
-        mAccountTypeView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
-            @Override
-            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
-                if (parent.getSelectedItem().toString().equals("RING")) {
-                    mFieldsSip.setVisibility(View.GONE);
-                    mFieldsRing.setVisibility(View.VISIBLE);
-                } else {
-                    mFieldsSip.setVisibility(View.VISIBLE);
-                    mFieldsRing.setVisibility(View.GONE);
-                }
-            }
-            public void onNothingSelected(AdapterView<?> parent) {
-            }
-        });
 
         mPasswordView.getEdit_text().setOnEditorActionListener(new OnEditorActionListener() {
-
             @Override
             public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
-                mAccountType = mAccountTypeView.getSelectedItem().toString();
-                // if(actionId == EditorInfo.IME_ACTION_GO || event.getAction() == KeyEvent.KEYCODE_ENTER){
-                if (mAccountType.equals("RING")) {
-                    initCreation();
-                } else {
-                    mAlias = mAliasView.getText().toString();
-                    mHostname = mHostnameView.getText().toString();
-                    mUsername = mUsernameView.getText().toString();
-                    mPassword = mPasswordView.getText().toString();
-                    attemptCreation();
-                }
-                // }
-
+                mAccountType = "SIP";
+                mAlias = mAliasView.getText().toString();
+                mHostname = mHostnameView.getText().toString();
+                mUsername = mUsernameView.getText().toString();
+                mPassword = mPasswordView.getText().toString();
+                attemptCreation();
                 return true;
             }
         });
-        inflatedView.findViewById(R.id.create_button).setOnClickListener(new View.OnClickListener() {
+        inflatedView.findViewById(R.id.create_ring_account).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                mAccountType = mAccountTypeView.getSelectedItem().toString();
-                if (mAccountType.equals("RING")) {
-                    initCreation();
-                } else {
-                    mAlias = mAliasView.getText().toString();
-                    mHostname = mHostnameView.getText().toString();
-                    mUsername = mUsernameView.getText().toString();
-                    mPassword = mPasswordView.getText().toString();
-                    attemptCreation();
-                }
+                mAccountType = "RING";
+                initCreation();
+            }
+        });
+        inflatedView.findViewById(R.id.create_sip_button).setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                mAccountType = "SIP";
+                mAlias = mAliasView.getText().toString();
+                mHostname = mHostnameView.getText().toString();
+                mUsername = mUsernameView.getText().toString();
+                mPassword = mPasswordView.getText().toString();
+                attemptCreation();
             }
         });
 
@@ -141,17 +124,17 @@
     @Override
     public void onStart() {
         super.onStart();
-
+        ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle(R.string.ab_account_creation);
     }
 
     @Override
     public void onAttach(Activity activity) {
         super.onAttach(activity);
-        if (!(activity instanceof Callbacks)) {
+        if (!(activity instanceof LocalService.Callbacks)) {
             throw new IllegalStateException("Activity must implement fragment's callbacks.");
         }
 
-        mCallbacks = (Callbacks) activity;
+        mCallbacks = (LocalService.Callbacks) activity;
     }
 
     /**
@@ -212,7 +195,7 @@
 
         try {
 
-            HashMap<String, String> accountDetails = (HashMap<String, String>) mCallbacks.getService().getAccountTemplate(mAccountType);
+            HashMap<String, String> accountDetails = (HashMap<String, String>) mCallbacks.getRemoteService().getAccountTemplate(mAccountType);
             accountDetails.put(AccountDetailBasic.CONFIG_ACCOUNT_TYPE, mAccountType);
             if (mAccountType.equals("RING")) {
                 accountDetails.put(AccountDetailBasic.CONFIG_ACCOUNT_ALIAS, "Ring");
@@ -251,7 +234,7 @@
             @Override
             protected String doInBackground(HashMap<String, String>... accs) {
                 try {
-                    return mCallbacks.getService().addAccount(accs[0]);
+                    return mCallbacks.getRemoteService().addAccount(accs[0]);
                 } catch (RemoteException e) {
                     e.printStackTrace();
                 }
diff --git a/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java b/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
index bec95da..808aa2c 100644
--- a/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/fragments/MenuFragment.java
@@ -32,13 +32,10 @@
 
 import android.app.Activity;
 import android.app.Fragment;
-import android.app.LoaderManager;
-import android.content.AsyncTaskLoader;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.Loader;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.util.Log;
@@ -50,25 +47,24 @@
 import cx.ring.R;
 import cx.ring.adapters.AccountSelectionAdapter;
 import cx.ring.adapters.ContactPictureTask;
-import cx.ring.client.HomeActivity;
-import cx.ring.loaders.AccountsLoader;
-import cx.ring.loaders.LoaderConstants;
+import cx.ring.client.AccountWizard;
 import cx.ring.model.account.Account;
 import cx.ring.model.CallContact;
-import cx.ring.service.ConfigurationManagerCallback;
-import cx.ring.service.ISipService;
 import cx.ring.service.LocalService;
 
 import java.util.ArrayList;
+import java.util.List;
 
-public class MenuFragment extends Fragment /*extends AccountWrapperFragment implements LoaderManager.LoaderCallbacks<Bundle>*/ {
+public class MenuFragment extends Fragment {
 
     @SuppressWarnings("unused")
     private static final String TAG = MenuFragment.class.getSimpleName();
 
     AccountSelectionAdapter mAccountAdapter;
     private Spinner spinnerAccounts;
-    private ImageButton share_btn;
+    private ImageButton shareBtn;
+    private Button newAccountBtn;
+
     private LocalService.Callbacks mCallbacks = LocalService.DUMMY_CALLBACKS;
 
     public Account retrieveAccountById(String accountID) {
@@ -137,8 +133,17 @@
     public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
         View inflatedView = inflater.inflate(R.layout.frag_menu_header, parent, false);
 
-        share_btn = (ImageButton) inflatedView.findViewById(R.id.share_btn);
-        share_btn.setOnClickListener(new View.OnClickListener() {
+        newAccountBtn = (Button) inflatedView.findViewById(R.id.addaccount_btn);
+        newAccountBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent().setClass(getActivity(), AccountWizard.class);
+                startActivityForResult(intent, AccountsManagementFragment.ACCOUNT_CREATE_REQUEST);
+            }
+        });
+
+        shareBtn = (ImageButton) inflatedView.findViewById(R.id.share_btn);
+        shareBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 Account acc = mAccountAdapter.getSelectedAccount();
@@ -207,43 +212,18 @@
         /*if (getActivity() != null)
             getLoaderManager().restartLoader(LoaderConstants.ACCOUNTS_LOADER, null, this);*/
         if (mAccountAdapter != null && mCallbacks.getService() != null) {
-            mAccountAdapter.replaceAll(mCallbacks.getService().getAccounts());
+            List<Account> accs = mCallbacks.getService().getAccounts();
+            if (accs.isEmpty()) {
+                newAccountBtn.setVisibility(View.VISIBLE);
+                shareBtn.setVisibility(View.GONE);
+                spinnerAccounts.setVisibility(View.GONE);
+            } else {
+                newAccountBtn.setVisibility(View.GONE);
+                shareBtn.setVisibility(View.VISIBLE);
+                spinnerAccounts.setVisibility(View.VISIBLE);
+                mAccountAdapter.replaceAll(accs);
+            }
         }
     }
 
-    /*
-    @Override
-    public void accountsChanged() {
-        updateAllAccounts();
-
-    }
-
-    @Override
-    public void accountStateChanged(String accoundID, String State, int code) {
-        Log.w(TAG, "accountStateChanged " + accoundID + " " + State);
-
-        if (mAccountAdapter != null)
-            mAccountAdapter.updateAccount(accoundID, State, code);
-    }
-
-    @Override
-    public AsyncTaskLoader<Bundle> onCreateLoader(int arg0, Bundle arg1) {
-        AccountsLoader l = new AccountsLoader(getActivity(), mCallbacks.getRemoteService());
-        l.forceLoad();
-        return l;
-    }
-
-    @Override
-    public void onLoadFinished(Loader<Bundle> loader, Bundle data) {
-        mAccountAdapter.removeAll();
-        ArrayList<Account> accounts = data.getParcelableArrayList(AccountsLoader.ACCOUNTS);
-        accounts.add((Account)data.getParcelable(AccountsLoader.ACCOUNT_IP2IP));
-        mAccountAdapter.addAll(accounts);
-    }
-
-    @Override
-    public void onLoaderReset(Loader<Bundle> loader) {
-
-    }*/
-
 }
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ic_dialer_sip_black_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ic_dialer_sip_black_48dp.png
new file mode 100644
index 0000000..d911ebd
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ic_dialer_sip_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-hdpi/ring_logo_48dp.png b/ring-android/app/src/main/res/drawable-hdpi/ring_logo_48dp.png
new file mode 100644
index 0000000..5cebe0a
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-hdpi/ring_logo_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ic_dialer_sip_black_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ic_dialer_sip_black_48dp.png
new file mode 100644
index 0000000..44b1470
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ic_dialer_sip_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-mdpi/ring_logo_48dp.png b/ring-android/app/src/main/res/drawable-mdpi/ring_logo_48dp.png
new file mode 100644
index 0000000..4309716
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-mdpi/ring_logo_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ic_dialer_sip_black_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ic_dialer_sip_black_48dp.png
new file mode 100644
index 0000000..d458d5d
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ic_dialer_sip_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xhdpi/ring_logo_48dp.png b/ring-android/app/src/main/res/drawable-xhdpi/ring_logo_48dp.png
new file mode 100644
index 0000000..dff9241
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xhdpi/ring_logo_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ic_dialer_sip_black_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ic_dialer_sip_black_48dp.png
new file mode 100644
index 0000000..c9342b4
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ic_dialer_sip_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxhdpi/ring_logo_48dp.png b/ring-android/app/src/main/res/drawable-xxhdpi/ring_logo_48dp.png
new file mode 100644
index 0000000..cc4be60
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxhdpi/ring_logo_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ic_dialer_sip_black_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_dialer_sip_black_48dp.png
new file mode 100644
index 0000000..aed4ee2
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ic_dialer_sip_black_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/drawable-xxxhdpi/ring_logo_48dp.png b/ring-android/app/src/main/res/drawable-xxxhdpi/ring_logo_48dp.png
new file mode 100644
index 0000000..ae84b04
--- /dev/null
+++ b/ring-android/app/src/main/res/drawable-xxxhdpi/ring_logo_48dp.png
Binary files differ
diff --git a/ring-android/app/src/main/res/layout/frag_account_creation.xml b/ring-android/app/src/main/res/layout/frag_account_creation.xml
index b8af89d..86ddb81 100644
--- a/ring-android/app/src/main/res/layout/frag_account_creation.xml
+++ b/ring-android/app/src/main/res/layout/frag_account_creation.xml
@@ -1,8 +1,29 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?><!--
+Copyright (C) 2004-2015 Savoir-Faire Linux Inc.
+
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/login_form"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    tools:context=".client.AccountWizard"
+    android:background="#eeeeee">
 
     <LinearLayout
         style="@style/AccountFormContainer"
@@ -10,42 +31,118 @@
         android:descendantFocusability="beforeDescendants"
         android:focusableInTouchMode="true" >
 
-        <LinearLayout
-            android:orientation="horizontal"
-            android:layout_width="match_parent"
+        <android.support.v7.widget.CardView
+            xmlns:card_view="http://schemas.android.com/apk/res-auto"
+            android:id="@+id/ring_card_view"
+            android:layout_gravity="center"
+            android:layout_width="280dp"
             android:layout_height="wrap_content"
-            android:gravity="center_vertical">
+            card_view:cardCornerRadius="2dp"
+            android:layout_marginBottom="8dp">
 
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:text="@string/account_type"
-                android:id="@+id/textView3"
-                android:layout_marginRight="16dp" />
-
-            <Spinner
-                android:id="@+id/account_type"
-                android:layout_width="match_parent"
-                android:layout_height="52dp"
-android:minHeight="52dp"
-                android:entries="@array/accountType"
-                android:typeface="monospace" />
-
-        </LinearLayout>
-
-        <FrameLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:id="@+id/field_flipper"
-            >
-
-            <LinearLayout
+            <RelativeLayout
                 android:orientation="vertical"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
+                android:id="@+id/ring_fields">
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:id="@+id/imageView6"
+                    android:layout_alignParentTop="true"
+                    android:layout_alignParentRight="true"
+                    android:layout_alignParentEnd="true"
+                    android:src="@drawable/ring_logo_48dp"
+                    android:layout_margin="16dp" />
+
+                <TextView
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/help_ring_title"
+                    android:singleLine="false"
+                    android:textColor="@color/text_color_primary"
+                    android:textSize="24sp"
+                    android:paddingLeft="16dp"
+                    android:paddingTop="24dp"
+                    android:paddingRight="16dp"
+                    android:layout_alignParentStart="true"
+                    android:layout_alignParentTop="true"
+                    android:id="@+id/ring_acc_title_txt"
+                    android:layout_toLeftOf="@+id/imageView6"
+                    android:layout_toStartOf="@+id/imageView6" />
+
+                <TextView
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/help_ring"
+                    android:id="@+id/textView"
+                    android:singleLine="false"
+                    android:textColor="@color/text_color_primary"
+                    android:padding="16dp"
+                    android:textSize="14sp"
+                    android:layout_alignParentStart="true"
+                    android:layout_below="@+id/ring_acc_title_txt" />
+
+                <Button
+                    android:id="@+id/create_ring_account"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/create_ring_account"
+                    style="@style/Widget.AppCompat.Button.Borderless.Colored"
+                    android:layout_margin="8dp"
+                    android:padding="8dp"
+                    android:layout_below="@+id/textView"
+                    android:layout_alignParentStart="false"
+                    android:layout_alignParentEnd="false" />
+            </RelativeLayout>
+
+        </android.support.v7.widget.CardView>
+
+        <android.support.v7.widget.CardView
+            xmlns:card_view="http://schemas.android.com/apk/res-auto"
+            android:id="@+id/card_view"
+            android:layout_gravity="center"
+            android:layout_width="280dp"
+            android:layout_height="wrap_content"
+            card_view:cardCornerRadius="2dp"
+            android:layout_margin="8dp">
+            <RelativeLayout
+                android:orientation="vertical"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
                 android:id="@+id/sip_fields"
-                android:visibility="gone">
+                android:nestedScrollingEnabled="false">
+
+                <TextView
+                    android:layout_width="fill_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/help_sip_title"
+                    android:singleLine="false"
+                    android:textColor="@color/text_color_primary"
+                    android:textSize="24sp"
+                    android:paddingTop="24dp"
+                    android:paddingLeft="16dp"
+                    android:paddingRight="16dp"
+                    android:layout_alignParentLeft="true"
+                    android:layout_alignParentTop="true"
+                    android:id="@+id/textView3"
+                    android:layout_alignParentStart="false"
+                    android:layout_toLeftOf="@+id/imageView5"
+                    android:layout_toStartOf="@+id/imageView5" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/help_sip"
+                    android:singleLine="false"
+                    android:textColor="@color/text_color_primary"
+                    android:textSize="14sp"
+                    android:layout_below="@+id/textView3"
+                    android:id="@+id/textView4"
+                    android:padding="16dp"
+                    android:layout_alignParentEnd="true"
+                    android:layout_alignParentStart="true" />
 
                 <EditText
                     android:id="@+id/alias"
@@ -53,7 +150,12 @@
                     android:layout_height="wrap_content"
                     android:hint="@string/prompt_alias"
                     android:singleLine="true"
-                    android:typeface="monospace" >
+                    android:typeface="monospace"
+                    android:layout_below="@+id/textView4"
+                    android:layout_alignParentLeft="true"
+                    android:layout_marginLeft="16dp"
+                    android:layout_marginRight="16dp"
+                    android:layout_marginBottom="8dp">
                 </EditText>
 
                 <EditText
@@ -62,7 +164,12 @@
                     android:layout_height="wrap_content"
                     android:hint="@string/prompt_hostname"
                     android:singleLine="true"
-                    android:typeface="monospace" >
+                    android:typeface="monospace"
+                    android:layout_below="@+id/alias"
+                    android:layout_alignParentLeft="true"
+                    android:layout_marginLeft="16dp"
+                    android:layout_marginRight="16dp"
+                    android:layout_marginBottom="8dp">
                 </EditText>
 
                 <EditText
@@ -71,7 +178,13 @@
                     android:layout_height="wrap_content"
                     android:hint="@string/prompt_username"
                     android:singleLine="true"
-                    android:typeface="monospace" />
+                    android:typeface="monospace"
+                    android:layout_below="@+id/hostname"
+                    android:layout_alignParentLeft="true"
+                    android:layout_alignParentStart="true"
+                    android:layout_marginRight="16dp"
+                    android:layout_marginLeft="16dp"
+                    android:layout_marginBottom="8dp" />
 
                 <cx.ring.views.PasswordEditText
                     android:id="@+id/password"
@@ -82,34 +195,42 @@
                     android:imeOptions="actionGo"
                     android:inputType="textPassword"
                     android:singleLine="true"
-                    android:typeface="sans" />
-            </LinearLayout>
+                    android:typeface="sans"
+                    android:layout_centerVertical="true"
+                    android:layout_alignEnd="@+id/username"
+                    android:layout_alignParentStart="true"
+                    android:layout_alignParentLeft="true"
+                    android:layout_below="@+id/username"
+                    android:layout_marginLeft="16dp"
+                    android:layout_marginRight="16dp"
+                    android:layout_marginBottom="8dp" />
 
-            <LinearLayout
-                android:orientation="vertical"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:id="@+id/ring_fields">
-
-                <TextView
+                <Button
+                    android:id="@+id/create_sip_button"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:textAppearance="?android:attr/textAppearanceMedium"
-                    android:text="@string/help_ring"
-                    android:id="@+id/textView"
-                    android:singleLine="false" />
-            </LinearLayout>
-        </FrameLayout>
+                    android:text="@string/create_sip_account"
+                    style="@style/Widget.AppCompat.Button.Borderless.Colored"
+                    android:padding="8dp"
+                    android:layout_alignParentLeft="true"
+                    android:layout_alignParentTop="false"
+                    android:layout_alignParentStart="true"
+                    android:layout_below="@+id/password"
+                    android:layout_margin="8dp" />
 
-        <Button
-            android:id="@+id/create_button"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity="right"
-            android:layout_marginTop="16dp"
-            android:paddingLeft="32dp"
-            android:paddingRight="32dp"
-            android:text="@string/action_create" />
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:id="@+id/imageView5"
+                    android:layout_alignParentTop="true"
+                    android:layout_alignParentRight="true"
+                    android:layout_alignParentEnd="true"
+                    android:src="@drawable/ic_dialer_sip_black_48dp"
+                    android:layout_margin="16dp" />
+            </RelativeLayout>
+
+        </android.support.v7.widget.CardView>
+
 
     </LinearLayout>
 
diff --git a/ring-android/app/src/main/res/layout/frag_menu_header.xml b/ring-android/app/src/main/res/layout/frag_menu_header.xml
index 544f6ff..412ab99 100644
--- a/ring-android/app/src/main/res/layout/frag_menu_header.xml
+++ b/ring-android/app/src/main/res/layout/frag_menu_header.xml
@@ -6,28 +6,28 @@
     android:background="@color/color_primary_dark"
     android:paddingTop="40dp"
     android:theme="@style/MenuHeader"
-    android:paddingLeft="16dp">
+    android:paddingLeft="16dp"
+    tools:showIn="@layout/menuheader">
 
     <ImageView
         android:id="@+id/user_photo"
         android:layout_width="70dp"
         android:layout_height="70dp"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
         android:layout_alignParentTop="true"
-        android:layout_marginBottom="8dp" />
+        android:layout_centerHorizontal="true" />
 
     <TextView
         android:id="@+id/user_name"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:layout_below="@+id/user_photo"
         android:singleLine="true"
         android:textSize="20sp"
         android:textStyle="bold"
-        android:textColor="@color/white" />
+        android:textColor="@color/white"
+        android:layout_below="@+id/user_photo"
+        android:layout_centerHorizontal="true"
+        android:layout_marginBottom="16dp"
+        android:layout_marginTop="8dp" />
 
     <Spinner
         android:id="@+id/account_selection"
@@ -37,17 +37,33 @@
         android:layout_alignParentStart="true"
         android:layout_below="@+id/user_name"
         android:layout_toLeftOf="@+id/share_btn"
-        android:layout_toStartOf="@+id/share_btn" />
+        android:layout_toStartOf="@+id/share_btn"
+        android:visibility="visible"
+        tools:listitem="@layout/item_account_selected"/>
 
     <ImageButton
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="New Button"
+        android:text="@string/share_number"
         android:id="@+id/share_btn"
         android:src="@drawable/ic_share_white_24dp"
         style="?android:attr/borderlessButtonStyle"
         android:layout_alignBottom="@+id/account_selection"
         android:layout_alignParentRight="true"
         android:layout_alignParentEnd="true"
-        android:layout_alignTop="@+id/account_selection" />
+        android:layout_alignTop="@+id/account_selection"
+        android:visibility="visible" />
+
+    <Button
+        android:layout_width="wrap_content"
+        android:layout_height="72dp"
+        android:text="@string/action_create"
+        android:id="@+id/addaccount_btn"
+        android:layout_below="@+id/user_name"
+        android:layout_alignParentRight="true"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentStart="true"
+        style="@style/Widget.AppCompat.Button.Borderless"
+        android:visibility="gone" />
 </RelativeLayout>
\ No newline at end of file
diff --git a/ring-android/app/src/main/res/values/strings.xml b/ring-android/app/src/main/res/values/strings.xml
index ce6280c..4884b2d 100644
--- a/ring-android/app/src/main/res/values/strings.xml
+++ b/ring-android/app/src/main/res/values/strings.xml
@@ -117,19 +117,9 @@
     <string name="copyright">Copyright \u00A9 2004&#8211;2015 Savoir-Faire Linux Inc.</string>
     <string name="web_site">Website</string>
     <string name="help_gestures"> This view will help users with different interactions during calls. Different actions will be described; Long press, fling, swype etc.</string>
+    <string name="send_message">Send message</string>
     <string name="ongoing_call">Ongoing call</string>
     <string name="hist_in_call">Incoming call of %1$s</string>
     <string name="hist_out_call">Outgoing call of %1$s</string>
 
-    <!-- combobox protocol -->
-    <string-array name="accountType">
-        <item>RING</item>
-        <item>SIP</item>
-        <item>IAX</item>
-    </string-array>
-    <string name="help_ring">Ring accounts allow you to reach people securely in peer to peer through a fully distributed network.\n\n
-When creating a Ring account, a new 4096 bits RSA key pair is generated. The hash of the public key then becomes your Ring ID.
-    </string>
-    <string name="account_type">Account type</string>
-
 </resources>
diff --git a/ring-android/app/src/main/res/values/strings_account.xml b/ring-android/app/src/main/res/values/strings_account.xml
index cedd0e5..1530db4 100644
--- a/ring-android/app/src/main/res/values/strings_account.xml
+++ b/ring-android/app/src/main/res/values/strings_account.xml
@@ -42,6 +42,22 @@
     <string name="dialog_wait_create">Adding account</string>
     <string name="dialog_wait_create_details">Please wait while your new account is added…</string>
 
+    <!-- Strings related to account creation -->
+    <string-array name="accountType">
+        <item>RING</item>
+        <item>SIP</item>
+        <item>IAX</item>
+    </string-array>
+    <string name="help_ring_title">Ring identity</string>
+    <string name="help_ring">A Ring identities allows you to reach people securely in peer to peer through a fully distributed network.</string>
+    <string name="create_ring_account">Create</string>
+
+    <string name="help_sip_title">SIP account</string>
+    <string name="help_sip">Configure an existing SIP account.</string>
+    <string name="create_sip_account">Add</string>
+    <string name="configure_sip_account">Configure</string>
+    <string name="share_number">Share number</string>
+
     <!-- AccountManagementFragment -->
     <string name="preference_section1">Accounts</string>
     <string name="empty_account_list">No account registered</string>
