diff --git a/Ring/Ring.xcodeproj/project.pbxproj b/Ring/Ring.xcodeproj/project.pbxproj
index 958db50..b2b3211 100644
--- a/Ring/Ring.xcodeproj/project.pbxproj
+++ b/Ring/Ring.xcodeproj/project.pbxproj
@@ -111,6 +111,10 @@
 		5557FD4F1E81B2990043E394 /* AccountCredentialsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DD80C91E1EAF1A009A3510 /* AccountCredentialsModel.swift */; };
 		557086521E8ADB9D001A7CE4 /* SystemAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 557086511E8ADB9D001A7CE4 /* SystemAdapter.mm */; };
 		56AC64D91E8012CA00EA1AA9 /* Walkthrough.strings in Resources */ = {isa = PBXBuildFile; fileRef = 56AC64DB1E8012CA00EA1AA9 /* Walkthrough.strings */; };
+		56AC64DF1E804ECC00EA1AA9 /* SwitchCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56AC64DE1E804ECC00EA1AA9 /* SwitchCell.swift */; };
+		56AC64E11E80542300EA1AA9 /* TextFieldCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56AC64E01E80542300EA1AA9 /* TextFieldCell.swift */; };
+		56AC64E31E805F0200EA1AA9 /* TextCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56AC64E21E805F0200EA1AA9 /* TextCell.swift */; };
+		56AC650E1E85694D00EA1AA9 /* RoundedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56AC650D1E85694D00EA1AA9 /* RoundedTextField.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -245,6 +249,10 @@
 		557086501E8ADB9D001A7CE4 /* SystemAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SystemAdapter.h; path = Bridging/SystemAdapter.h; sourceTree = "<group>"; };
 		557086511E8ADB9D001A7CE4 /* SystemAdapter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SystemAdapter.mm; path = Bridging/SystemAdapter.mm; sourceTree = "<group>"; };
 		56AC64DA1E8012CA00EA1AA9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Walkthrough.strings; sourceTree = "<group>"; };
+		56AC64DE1E804ECC00EA1AA9 /* SwitchCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwitchCell.swift; sourceTree = "<group>"; };
+		56AC64E01E80542300EA1AA9 /* TextFieldCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldCell.swift; sourceTree = "<group>"; };
+		56AC64E21E805F0200EA1AA9 /* TextCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextCell.swift; sourceTree = "<group>"; };
+		56AC650D1E85694D00EA1AA9 /* RoundedTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RoundedTextField.swift; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -334,6 +342,7 @@
 		0273C3021E0C689600CF00BA /* Walkthrough */ = {
 			isa = PBXGroup;
 			children = (
+				56AC64DD1E804EB500EA1AA9 /* Cells */,
 				0273C3031E0C68B100CF00BA /* CreateProfileViewController.swift */,
 				0273C3041E0C68B100CF00BA /* CreateRingAccountViewController.swift */,
 			);
@@ -443,6 +452,7 @@
 			children = (
 				0273C3071E0C68BF00CF00BA /* RoundedButton.swift */,
 				043866351D22D06500E06CE2 /* AccountTableViewCell.swift */,
+				56AC650D1E85694D00EA1AA9 /* RoundedTextField.swift */,
 			);
 			name = UI;
 			sourceTree = "<group>";
@@ -611,6 +621,16 @@
 			name = Internationalization;
 			sourceTree = "<group>";
 		};
+		56AC64DD1E804EB500EA1AA9 /* Cells */ = {
+			isa = PBXGroup;
+			children = (
+				56AC64DE1E804ECC00EA1AA9 /* SwitchCell.swift */,
+				56AC64E01E80542300EA1AA9 /* TextFieldCell.swift */,
+				56AC64E21E805F0200EA1AA9 /* TextCell.swift */,
+			);
+			name = Cells;
+			sourceTree = "<group>";
+		};
 /* End PBXGroup section */
 
 /* Begin PBXNativeTarget section */
@@ -777,10 +797,14 @@
 				02C9B63F1E1D4E8C00F82F0C /* ServiceEvent.swift in Sources */,
 				02DD80CD1E1EB2E4009A3510 /* ConfigKeyModel.swift in Sources */,
 				5516C29F1E71CEFF009D3D2D /* AccountModelHelper.swift in Sources */,
+				56AC64E11E80542300EA1AA9 /* TextFieldCell.swift in Sources */,
+				56AC64E31E805F0200EA1AA9 /* TextCell.swift in Sources */,
+				56AC650E1E85694D00EA1AA9 /* RoundedTextField.swift in Sources */,
 				02B22E011DF755E5000358C9 /* MainTabBarViewController.swift in Sources */,
 				043999F71D1C2D9D00E99CD9 /* AppDelegate.swift in Sources */,
 				02B22DFC1DF755BB000358C9 /* AccountModel.swift in Sources */,
 				043866331D22CE8C00E06CE2 /* MeViewController.swift in Sources */,
+				56AC64DF1E804ECC00EA1AA9 /* SwitchCell.swift in Sources */,
 				04399AAE1D1C304300E99CD9 /* Utils.mm in Sources */,
 				02B22DFD1DF755BB000358C9 /* CreateRingAccountViewModel.swift in Sources */,
 				043999FA1D1C2D9D00E99CD9 /* Ring.xcdatamodeld in Sources */,
diff --git a/Ring/Ring/Account/CreateRingAccountViewModel.swift b/Ring/Ring/Account/CreateRingAccountViewModel.swift
index 6ed3259..45e2fb3 100644
--- a/Ring/Ring/Account/CreateRingAccountViewModel.swift
+++ b/Ring/Ring/Account/CreateRingAccountViewModel.swift
@@ -43,6 +43,8 @@
      */
     fileprivate var account: AccountModel?
 
+    var registerUsername = Variable<Bool>(true)
+
     /**
      The accountService instance injected in initializer.
      */
diff --git a/Ring/Ring/Base.lproj/Walkthrough.strings b/Ring/Ring/Base.lproj/Walkthrough.strings
index a1bb359..69ac874 100644
--- a/Ring/Ring/Base.lproj/Walkthrough.strings
+++ b/Ring/Ring/Base.lproj/Walkthrough.strings
@@ -24,3 +24,12 @@
 "WelcomeText" = "A Ring account allows you to reach people securely in peer to peer through fully distributed network";
 "LinkDeviceButton" = "Link this device to an account";
 "CreateAccount" = "Create a Ring account";
+
+//Create Account form
+
+"CreateAccountFormTitle" = "Create your Ring account";
+"RegisterPublicUsername" = "Register public username (experimental)";
+"ChooseStrongPassword" = "Choose strong password you will remember to protect your Ring account.";
+"EnterNewUsernamePlaceholder" = "Enter new username";
+"NewPasswordPlaceholder" = "New Password";
+"RepeatPasswordPlaceholder" = "Repeat new password";
diff --git a/Ring/Ring/RoundedTextField.swift b/Ring/Ring/RoundedTextField.swift
new file mode 100644
index 0000000..5478afd
--- /dev/null
+++ b/Ring/Ring/RoundedTextField.swift
@@ -0,0 +1,37 @@
+/*
+ *  Copyright (C) 2017 Savoir-faire Linux Inc.
+ *
+ *  Author: Silbino Gonçalves Matado <silbino.gmatado@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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
+ */
+
+import UIKit
+
+class RoundedTextField: UITextField {
+
+    required init?(coder aDecoder: NSCoder) {
+        super.init(coder: aDecoder)
+        self.layer.borderColor = UIColor.white.cgColor
+        self.layer.borderWidth = 1.0
+        self.clipsToBounds = true
+    }
+
+    override func layoutSubviews() {
+        super.layoutSubviews()
+        self.layer.cornerRadius = self.frame.size.height / 2.0
+    }
+
+}
diff --git a/Ring/Ring/SwitchCell.swift b/Ring/Ring/SwitchCell.swift
new file mode 100644
index 0000000..2c5214b
--- /dev/null
+++ b/Ring/Ring/SwitchCell.swift
@@ -0,0 +1,39 @@
+/*
+ *  Copyright (C) 2017 Savoir-faire Linux Inc.
+ *
+ *  Author: Silbino Gonçalves Matado <silbino.gmatado@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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
+ */
+
+import UIKit
+
+class SwitchCell: UITableViewCell {
+
+    @IBOutlet weak var titleLabel: UILabel!
+    @IBOutlet weak var registerSwitch: UISwitch!
+
+    override func awakeFromNib() {
+        super.awakeFromNib()
+        // Initialization code
+    }
+
+    override func setSelected(_ selected: Bool, animated: Bool) {
+        super.setSelected(selected, animated: animated)
+
+        // Configure the view for the selected state
+    }
+
+}
diff --git a/Ring/Ring/TextCell.swift b/Ring/Ring/TextCell.swift
new file mode 100644
index 0000000..8e4f42f
--- /dev/null
+++ b/Ring/Ring/TextCell.swift
@@ -0,0 +1,38 @@
+/*
+ *  Copyright (C) 2017 Savoir-faire Linux Inc.
+ *
+ *  Author: Silbino Gonçalves Matado <silbino.gmatado@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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
+ */
+
+import UIKit
+
+class TextCell: UITableViewCell {
+
+    @IBOutlet weak var label: UILabel!
+
+    override func awakeFromNib() {
+        super.awakeFromNib()
+        // Initialization code
+    }
+
+    override func setSelected(_ selected: Bool, animated: Bool) {
+        super.setSelected(selected, animated: animated)
+
+        // Configure the view for the selected state
+    }
+
+}
diff --git a/Ring/Ring/TextFieldCell.swift b/Ring/Ring/TextFieldCell.swift
new file mode 100644
index 0000000..1c7b458
--- /dev/null
+++ b/Ring/Ring/TextFieldCell.swift
@@ -0,0 +1,38 @@
+/*
+ *  Copyright (C) 2017 Savoir-faire Linux Inc.
+ *
+ *  Author: Silbino Gonçalves Matado <silbino.gmatado@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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.
+ */
+
+import UIKit
+
+class TextFieldCell: UITableViewCell {
+
+    @IBOutlet weak var textField: UITextField!
+
+    override func awakeFromNib() {
+        super.awakeFromNib()
+        // Initialization code
+    }
+
+    override func setSelected(_ selected: Bool, animated: Bool) {
+        super.setSelected(selected, animated: animated)
+
+        // Configure the view for the selected state
+    }
+
+}
diff --git a/Ring/Ring/Walkthrough/CreateRingAccountViewController.swift b/Ring/Ring/Walkthrough/CreateRingAccountViewController.swift
index 8f922b3..f43d503 100644
--- a/Ring/Ring/Walkthrough/CreateRingAccountViewController.swift
+++ b/Ring/Ring/Walkthrough/CreateRingAccountViewController.swift
@@ -23,16 +23,37 @@
 import RxCocoa
 import RxSwift
 
-class CreateRingAccountViewController: UIViewController {
+fileprivate enum CreateRingAccountCellType {
+    case registerPublicUsername
+    case usernameField
+    case passwordNotice
+    case newPasswordField
+    case repeatPasswordField
+}
+
+class CreateRingAccountViewController: UITableViewController {
 
     var mAccountViewModel = CreateRingAccountViewModel(withAccountService: AppDelegate.accountService)
 
     @IBOutlet weak var mCreateAccountButton: RoundedButton!
+    @IBOutlet weak var mCreateAccountTitleLabel: UILabel!
+
+    /**
+     Cell identifiers
+     */
+
+    let mSwitchCellId = "SwitchCellId"
+    let mTextFieldCellId = "TextFieldCellId"
+    let mTableViewCellId = "TableViewCellId"
+
+    var mDisposeBag = DisposeBag()
 
     override func viewDidLoad() {
         super.viewDidLoad()
 
         self.bindViews()
+
+        self.setupUI()
     }
 
     /**
@@ -62,6 +83,24 @@
                 }
                 self?.setCreateAccountAsIdle()
         })
+
+        _ = self.mAccountViewModel.registerUsername.asObservable()
+            .subscribe(onNext: { [weak self] showUsernameField in
+                self?.toggleRegisterSwitch(showUsernameField)
+        }).addDisposableTo(mDisposeBag)
+    }
+
+    /**
+     Customize the views
+     */
+
+    fileprivate func setupUI() {
+        self.tableView.estimatedRowHeight = 44.0
+        self.tableView.rowHeight = UITableViewAutomaticDimension
+
+        self.mCreateAccountTitleLabel.text = NSLocalizedString("CreateAccountFormTitle",
+                                                              tableName: LocalizedStringTableNames.walkthrough,
+                                                              comment: "")
     }
 
     fileprivate func setCreateAccountAsLoading() {
@@ -74,4 +113,89 @@
         self.mCreateAccountButton.setTitle("Create a Ring account", for: .normal)
         self.mCreateAccountButton.isUserInteractionEnabled = true
     }
+
+    /**
+     Show or hide the username field cell in function of the switch state
+     */
+
+    func toggleRegisterSwitch(_ show: Bool) {
+
+        let usernameFieldCellIndex = 1
+
+        if show && !mCells.contains(.usernameField) {
+            self.mCells.insert(.usernameField, at: usernameFieldCellIndex)
+            self.tableView.insertRows(at: [IndexPath(row: usernameFieldCellIndex, section: 0)],
+                                      with: .automatic)
+        } else if !show && mCells.contains(.usernameField) {
+            self.mCells.remove(at: usernameFieldCellIndex)
+            self.tableView.deleteRows(at: [IndexPath(row: usernameFieldCellIndex, section: 0)],
+                                      with: .automatic)
+        }
+
+    }
+
+    //MARK: TableView datasource
+    fileprivate var mCells :[CreateRingAccountCellType] = [.registerPublicUsername,
+                                                          .passwordNotice,
+                                                          .newPasswordField,
+                                                          .repeatPasswordField]
+
+    override func numberOfSections(in tableView: UITableView) -> Int {
+        return 1
+    }
+
+    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+        return mCells.count
+    }
+
+    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
+
+        let currentCellType = mCells[indexPath.row]
+
+        if currentCellType == .registerPublicUsername {
+            let cell = tableView.dequeueReusableCell(withIdentifier: mSwitchCellId,
+                                                     for: indexPath) as! SwitchCell
+            cell.titleLabel.text = NSLocalizedString("RegisterPublicUsername",
+                                                     tableName: LocalizedStringTableNames.walkthrough,
+                                                     comment: "")
+            cell.titleLabel.textColor = .white
+
+            _ = cell.registerSwitch.rx.value.bindTo(self.mAccountViewModel.registerUsername)
+                .addDisposableTo(mDisposeBag)
+
+            return cell
+        } else if currentCellType == .usernameField {
+            let cell = tableView.dequeueReusableCell(withIdentifier: mTextFieldCellId,
+                                                     for: indexPath) as! TextFieldCell
+            cell.textField.isSecureTextEntry = false
+            cell.textField.placeholder = NSLocalizedString("EnterNewUsernamePlaceholder",
+                                                           tableName: LocalizedStringTableNames.walkthrough,
+                                                           comment: "")
+            return cell
+        } else if currentCellType == .passwordNotice {
+            let cell = tableView.dequeueReusableCell(withIdentifier: mTableViewCellId,
+                                                     for: indexPath) as! TextCell
+            cell.label.text = NSLocalizedString("ChooseStrongPassword",
+                                                tableName: LocalizedStringTableNames.walkthrough,
+                                                comment: "")
+            return cell
+        } else if currentCellType == .newPasswordField {
+            let cell = tableView.dequeueReusableCell(withIdentifier: mTextFieldCellId,
+                                                     for: indexPath) as! TextFieldCell
+            cell.textField.isSecureTextEntry = true
+            cell.textField.placeholder = NSLocalizedString("NewPasswordPlaceholder",
+                                                           tableName: LocalizedStringTableNames.walkthrough,
+                                                           comment: "")
+            return cell
+        } else {
+            let cell = tableView.dequeueReusableCell(withIdentifier: mTextFieldCellId,
+                                                     for: indexPath) as! TextFieldCell
+            cell.textField.isSecureTextEntry = true
+            cell.textField.placeholder = NSLocalizedString("RepeatPasswordPlaceholder",
+                                                           tableName: LocalizedStringTableNames.walkthrough,
+                                                           comment: "")
+            return cell
+        }
+    }
+
 }
diff --git a/Ring/Ring/Walkthrough/WalkthroughStoryboard.storyboard b/Ring/Ring/Walkthrough/WalkthroughStoryboard.storyboard
index 45da4d1..6db76a2 100644
--- a/Ring/Ring/Walkthrough/WalkthroughStoryboard.storyboard
+++ b/Ring/Ring/Walkthrough/WalkthroughStoryboard.storyboard
@@ -153,7 +153,7 @@
                         </constraints>
                     </view>
                     <connections>
-                        <segue destination="ja8-pO-qtF" kind="show" identifier="ProfileToAccountSegue" id="3D3-9L-iuy"/>
+                        <segue destination="kzh-87-Ao9" kind="show" identifier="ProfileToAccountSegue" id="CDO-bH-qiw"/>
                     </connections>
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="YDh-Qj-wfv" userLabel="First Responder" sceneMemberID="firstResponder"/>
@@ -161,39 +161,154 @@
             <point key="canvasLocation" x="1105" y="367"/>
         </scene>
         <!--Create Ring Account View Controller-->
-        <scene sceneID="hlW-WP-KN4">
+        <scene sceneID="XTt-go-ZNJ">
             <objects>
-                <viewController id="ja8-pO-qtF" customClass="CreateRingAccountViewController" customModule="Ring" customModuleProvider="target" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="lys-bB-GcZ"/>
-                        <viewControllerLayoutGuide type="bottom" id="5jn-tZ-fJ1"/>
-                    </layoutGuides>
-                    <view key="view" contentMode="scaleToFill" id="iHs-VJ-9vN">
+                <tableViewController id="kzh-87-Ao9" customClass="CreateRingAccountViewController" customModule="Ring" customModuleProvider="target" sceneMemberID="viewController">
+                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="69" sectionHeaderHeight="28" sectionFooterHeight="28" id="e9y-lu-Idq">
                         <rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="exC-LF-5rp" customClass="RoundedButton" customModule="Ring" customModuleProvider="target">
-                                <rect key="frame" x="84" y="225" width="152" height="30"/>
-                                <color key="backgroundColor" red="0.0" green="0.29803921570000003" blue="0.37647058820000001" alpha="1" colorSpace="calibratedRGB"/>
-                                <state key="normal" title="Create a Ring account">
-                                    <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
-                                </state>
-                            </button>
-                        </subviews>
                         <color key="backgroundColor" red="0.039215686270000001" green="0.4549019608" blue="0.53725490200000003" alpha="1" colorSpace="calibratedRGB"/>
-                        <constraints>
-                            <constraint firstItem="exC-LF-5rp" firstAttribute="centerY" secondItem="iHs-VJ-9vN" secondAttribute="centerY" id="3gQ-AK-GLL"/>
-                            <constraint firstItem="exC-LF-5rp" firstAttribute="centerX" secondItem="iHs-VJ-9vN" secondAttribute="centerX" id="eBl-JO-6ae"/>
-                        </constraints>
-                    </view>
+                        <view key="tableHeaderView" contentMode="scaleToFill" id="gnd-b0-Ncm">
+                            <rect key="frame" x="0.0" y="0.0" width="320" height="130"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <subviews>
+                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Create your Ring account" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AIX-eC-baN">
+                                    <rect key="frame" x="8" y="8" width="304" height="114"/>
+                                    <fontDescription key="fontDescription" type="system" pointSize="24"/>
+                                    <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                    <nil key="highlightedColor"/>
+                                </label>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                            <constraints>
+                                <constraint firstItem="AIX-eC-baN" firstAttribute="leading" secondItem="gnd-b0-Ncm" secondAttribute="leading" constant="8" id="D6R-DY-N4I"/>
+                                <constraint firstAttribute="trailing" secondItem="AIX-eC-baN" secondAttribute="trailing" constant="8" id="c58-zW-D8i"/>
+                                <constraint firstAttribute="bottom" secondItem="AIX-eC-baN" secondAttribute="bottom" constant="8" id="k5Z-6d-hx8"/>
+                                <constraint firstItem="AIX-eC-baN" firstAttribute="top" secondItem="gnd-b0-Ncm" secondAttribute="top" constant="8" id="peB-GQ-GOz"/>
+                            </constraints>
+                        </view>
+                        <view key="tableFooterView" contentMode="scaleToFill" id="MnN-De-arJ">
+                            <rect key="frame" x="0.0" y="365" width="320" height="54"/>
+                            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                            <subviews>
+                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gsT-SB-0AP" customClass="RoundedButton" customModule="Ring" customModuleProvider="target">
+                                    <rect key="frame" x="84" y="8" width="152" height="30"/>
+                                    <color key="backgroundColor" red="0.0" green="0.29803921570000003" blue="0.37647058820000001" alpha="1" colorSpace="calibratedRGB"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="30" id="KVf-AW-ms7"/>
+                                    </constraints>
+                                    <state key="normal" title="Create a Ring account">
+                                        <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                    </state>
+                                </button>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                            <constraints>
+                                <constraint firstItem="gsT-SB-0AP" firstAttribute="top" secondItem="MnN-De-arJ" secondAttribute="top" constant="8" id="pqs-B0-TWU"/>
+                                <constraint firstAttribute="bottom" secondItem="gsT-SB-0AP" secondAttribute="bottom" constant="16" id="qOI-R4-9EJ"/>
+                                <constraint firstItem="gsT-SB-0AP" firstAttribute="centerX" secondItem="MnN-De-arJ" secondAttribute="centerX" id="tMA-Qg-oxa"/>
+                            </constraints>
+                        </view>
+                        <prototypes>
+                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="SwitchCellId" rowHeight="69" id="xv3-kL-wNV" customClass="SwitchCell" customModule="Ring" customModuleProvider="target">
+                                <rect key="frame" x="0.0" y="158" width="320" height="69"/>
+                                <autoresizingMask key="autoresizingMask"/>
+                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="xv3-kL-wNV" id="u8d-10-5fQ">
+                                    <rect key="frame" x="0.0" y="0.0" width="320" height="69"/>
+                                    <autoresizingMask key="autoresizingMask"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" text="Register public username (experimental)" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="l6E-2a-51c">
+                                            <rect key="frame" x="16" y="8" width="231" height="52.5"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                            <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                        <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="751" verticalCompressionResistancePriority="751" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="eXQ-lo-PPY">
+                                            <rect key="frame" x="255" y="19" width="51" height="31"/>
+                                        </switch>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstAttribute="bottom" secondItem="l6E-2a-51c" secondAttribute="bottom" constant="8" id="3mf-5d-kOd"/>
+                                        <constraint firstItem="eXQ-lo-PPY" firstAttribute="centerY" secondItem="u8d-10-5fQ" secondAttribute="centerY" id="UJ8-RD-ddQ"/>
+                                        <constraint firstItem="l6E-2a-51c" firstAttribute="leading" secondItem="u8d-10-5fQ" secondAttribute="leading" constant="16" id="UsX-gS-0TN"/>
+                                        <constraint firstAttribute="trailing" secondItem="eXQ-lo-PPY" secondAttribute="trailing" constant="16" id="cE9-Xf-bT3"/>
+                                        <constraint firstItem="eXQ-lo-PPY" firstAttribute="leading" secondItem="l6E-2a-51c" secondAttribute="trailing" constant="8" id="cyW-Kw-ea3"/>
+                                        <constraint firstItem="l6E-2a-51c" firstAttribute="top" secondItem="u8d-10-5fQ" secondAttribute="top" constant="8" id="oun-Kt-auw"/>
+                                    </constraints>
+                                </tableViewCellContentView>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                <connections>
+                                    <outlet property="registerSwitch" destination="eXQ-lo-PPY" id="SlD-P6-SiF"/>
+                                    <outlet property="titleLabel" destination="l6E-2a-51c" id="28k-pL-Ri6"/>
+                                </connections>
+                            </tableViewCell>
+                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="TextFieldCellId" rowHeight="69" id="hll-q9-QzR" customClass="TextFieldCell" customModule="Ring" customModuleProvider="target">
+                                <rect key="frame" x="0.0" y="227" width="320" height="69"/>
+                                <autoresizingMask key="autoresizingMask"/>
+                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hll-q9-QzR" id="b0d-cJ-IJT">
+                                    <rect key="frame" x="0.0" y="0.0" width="320" height="69"/>
+                                    <autoresizingMask key="autoresizingMask"/>
+                                    <subviews>
+                                        <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="dWn-2T-XDN" customClass="RoundedTextField" customModule="Ring" customModuleProvider="target">
+                                            <rect key="frame" x="16" y="8" width="288" height="52.5"/>
+                                            <nil key="textColor"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                            <textInputTraits key="textInputTraits" secureTextEntry="YES"/>
+                                        </textField>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstAttribute="bottom" secondItem="dWn-2T-XDN" secondAttribute="bottom" constant="8" id="ExW-Ye-ifb"/>
+                                        <constraint firstAttribute="trailing" secondItem="dWn-2T-XDN" secondAttribute="trailing" constant="16" id="TZI-tk-XCc"/>
+                                        <constraint firstItem="dWn-2T-XDN" firstAttribute="top" secondItem="b0d-cJ-IJT" secondAttribute="top" constant="8" id="gXN-EW-HYY"/>
+                                        <constraint firstItem="dWn-2T-XDN" firstAttribute="leading" secondItem="b0d-cJ-IJT" secondAttribute="leading" constant="16" id="zAm-rb-vhR"/>
+                                    </constraints>
+                                </tableViewCellContentView>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                <connections>
+                                    <outlet property="textField" destination="dWn-2T-XDN" id="xz6-aa-Izw"/>
+                                </connections>
+                            </tableViewCell>
+                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="TableViewCellId" rowHeight="69" id="ExW-Pf-YtL" customClass="TextCell" customModule="Ring" customModuleProvider="target">
+                                <rect key="frame" x="0.0" y="296" width="320" height="69"/>
+                                <autoresizingMask key="autoresizingMask"/>
+                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ExW-Pf-YtL" id="D4j-0H-Fhi">
+                                    <rect key="frame" x="0.0" y="0.0" width="320" height="69"/>
+                                    <autoresizingMask key="autoresizingMask"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tqa-H7-iG3">
+                                            <rect key="frame" x="16" y="8" width="288" height="52.5"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                            <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstAttribute="trailing" secondItem="tqa-H7-iG3" secondAttribute="trailing" constant="16" id="VN7-fC-5Av"/>
+                                        <constraint firstItem="tqa-H7-iG3" firstAttribute="leading" secondItem="D4j-0H-Fhi" secondAttribute="leading" constant="16" id="ghI-k7-j7e"/>
+                                        <constraint firstAttribute="bottom" secondItem="tqa-H7-iG3" secondAttribute="bottom" constant="8" id="r6B-sj-b0Z"/>
+                                        <constraint firstItem="tqa-H7-iG3" firstAttribute="top" secondItem="D4j-0H-Fhi" secondAttribute="top" constant="8" id="vYA-FB-IGa"/>
+                                    </constraints>
+                                </tableViewCellContentView>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                <connections>
+                                    <outlet property="label" destination="tqa-H7-iG3" id="LDf-uD-qqo"/>
+                                </connections>
+                            </tableViewCell>
+                        </prototypes>
+                        <connections>
+                            <outlet property="dataSource" destination="kzh-87-Ao9" id="fWb-k5-HBL"/>
+                            <outlet property="delegate" destination="kzh-87-Ao9" id="DE2-dv-wl2"/>
+                        </connections>
+                    </tableView>
                     <connections>
-                        <outlet property="mCreateAccountButton" destination="exC-LF-5rp" id="z71-gN-58V"/>
-                        <segue destination="E3W-r7-J4y" kind="show" identifier="AccountToPermissionsSegue" id="KYM-Jg-1oB"/>
+                        <outlet property="mCreateAccountButton" destination="gsT-SB-0AP" id="9Fj-aJ-0Ik"/>
+                        <outlet property="mCreateAccountTitleLabel" destination="AIX-eC-baN" id="YUL-yb-Ecy"/>
+                        <segue destination="E3W-r7-J4y" kind="show" identifier="AccountToPermissionsSegue" id="Zig-iC-h9U"/>
                     </connections>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="fjG-WS-Fbj" userLabel="First Responder" sceneMemberID="firstResponder"/>
+                </tableViewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="W0G-TV-Z9c" userLabel="First Responder" sceneMemberID="firstResponder"/>
             </objects>
-            <point key="canvasLocation" x="1868" y="367"/>
+            <point key="canvasLocation" x="1965.5999999999999" y="366.56671664167919"/>
         </scene>
         <!--View Controller-->
         <scene sceneID="c8H-6M-3dO">
@@ -211,7 +326,7 @@
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="bS8-E0-lOu" userLabel="First Responder" sceneMemberID="firstResponder"/>
             </objects>
-            <point key="canvasLocation" x="2646" y="367"/>
+            <point key="canvasLocation" x="2852" y="367"/>
         </scene>
         <!--View Controller-->
         <scene sceneID="JGg-HD-FXJ">
