From 67e34610d4ca0b59e76c798dc6b8b74a26f1eadf Mon Sep 17 00:00:00 2001
From: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
Date: Tue, 4 Jul 2017 15:36:03 -0400
Subject: [PATCH] Project: organize folders

Organize project folders according to groups hierarchy.
It is not mandatory but the project directory is easier to read this way

Also move WelcomeViewController to Walkthrough folder and renamed
ViewControllers folder to Settings

Change-Id: Ica7b39ff57492435811d49ee9b6e0132dc597beb
---
 Ring/Ring.xcodeproj/project.pbxproj           | 178 +++++++++---------
 Ring/Ring/{ => Account}/DeviceModel.swift     |   0
 Ring/Ring/{ => Base.lproj}/Global.strings     |   0
 Ring/Ring/{ => Base.lproj}/Smartlist.strings  |   0
 .../{ => AccountCreation}/AccountAdapter.h    |   0
 .../{ => AccountCreation}/AccountAdapter.mm   |   0
 .../AccountCreation}/RegistrationResponse.h   |   0
 .../AccountCreation}/RegistrationResponse.m   |   0
 Ring/Ring/{ => Bridging}/MessagesAdapter.h    |   0
 Ring/Ring/{ => Bridging}/MessagesAdapter.mm   |   0
 .../NameRegistration}/LookupNameResponse.h    |   0
 .../NameRegistration}/LookupNameResponse.m    |   0
 .../NameRegistrationAdapter.h                 |   0
 .../NameRegistrationAdapter.mm                |   0
 .../NameRegistrationResponse.h                |   0
 .../NameRegistrationResponse.m                |   0
 Ring/Ring/{ => Constants}/Colors.swift        |   0
 Ring/Ring/{ => Constants}/Durations.swift     |   0
 .../LocalizedStringTableNames.swift           |   0
 Ring/Ring/{ => Contacts}/ContactHelper.swift  |   0
 Ring/Ring/{ => Contacts}/ContactModel.swift   |   0
 .../{ => Contacts}/ContactViewModel.swift     |   0
 .../ConversationCell.swift                    |   0
 .../{ => Conversations}/ConversationCell.xib  |   0
 .../ConversationModel.swift                   |   0
 .../ConversationSection.swift                 |   0
 .../ConversationViewController.swift          |   0
 .../ConversationViewModel.swift               |   0
 .../{ => Messages}/MessageAccessoryView.swift |   0
 .../{ => Messages}/MessageAccessoryView.xib   |   0
 Ring/Ring/{ => Messages}/MessageCell.swift    |   0
 Ring/Ring/{ => Messages}/MessageCell.xib      |   0
 Ring/Ring/{ => Messages}/MessageModel.swift   |   0
 .../{ => Messages}/MessageViewModel.swift     |   0
 .../{ => Services}/ConversationsService.swift |   0
 .../MessagesAdapterDelegate.swift             |   0
 .../NameRegistrationAdapterDelegate.swift     |   0
 Ring/Ring/{ => Services}/NameService.swift    |   0
 .../AccountDetailsViewController.swift        |   0
 .../{ => Settings}/MeViewController.swift     |   0
 .../SmartlistViewController.swift             |   0
 .../{ => Smartlist}/SmartlistViewModel.swift  |   0
 Ring/Ring/{ => UI}/AccountTableViewCell.swift |   0
 Ring/Ring/{ => UI}/RoundedTextField.swift     |   0
 .../{ => Walkthrough/Cell}/SwitchCell.swift   |   0
 .../{ => Walkthrough/Cell}/SwitchCell.xib     |   0
 .../{ => Walkthrough/Cell}/TextCell.swift     |   0
 Ring/Ring/{ => Walkthrough/Cell}/TextCell.xib |   0
 .../Cell}/TextFieldCell.swift                 |   0
 .../{ => Walkthrough/Cell}/TextFieldCell.xib  |   0
 .../LinkDeviceToAccountViewController.swift   |   0
 .../WelcomeViewController.swift               |   0
 Ring/RingTests/DaemonServiceTests.swift       |   1 +
 Ring/RingTests/ServiceEventTests.swift        |   1 +
 54 files changed, 86 insertions(+), 94 deletions(-)
 rename Ring/Ring/{ => Account}/DeviceModel.swift (100%)
 rename Ring/Ring/{ => Base.lproj}/Global.strings (100%)
 rename Ring/Ring/{ => Base.lproj}/Smartlist.strings (100%)
 rename Ring/Ring/Bridging/{ => AccountCreation}/AccountAdapter.h (100%)
 rename Ring/Ring/Bridging/{ => AccountCreation}/AccountAdapter.mm (100%)
 rename Ring/Ring/{ => Bridging/AccountCreation}/RegistrationResponse.h (100%)
 rename Ring/Ring/{ => Bridging/AccountCreation}/RegistrationResponse.m (100%)
 rename Ring/Ring/{ => Bridging}/MessagesAdapter.h (100%)
 rename Ring/Ring/{ => Bridging}/MessagesAdapter.mm (100%)
 rename Ring/Ring/{ => Bridging/NameRegistration}/LookupNameResponse.h (100%)
 rename Ring/Ring/{ => Bridging/NameRegistration}/LookupNameResponse.m (100%)
 rename Ring/Ring/{ => Bridging/NameRegistration}/NameRegistrationAdapter.h (100%)
 rename Ring/Ring/{ => Bridging/NameRegistration}/NameRegistrationAdapter.mm (100%)
 rename Ring/Ring/{ => Bridging/NameRegistration}/NameRegistrationResponse.h (100%)
 rename Ring/Ring/{ => Bridging/NameRegistration}/NameRegistrationResponse.m (100%)
 rename Ring/Ring/{ => Constants}/Colors.swift (100%)
 rename Ring/Ring/{ => Constants}/Durations.swift (100%)
 rename Ring/Ring/{ => Constants}/LocalizedStringTableNames.swift (100%)
 rename Ring/Ring/{ => Contacts}/ContactHelper.swift (100%)
 rename Ring/Ring/{ => Contacts}/ContactModel.swift (100%)
 rename Ring/Ring/{ => Contacts}/ContactViewModel.swift (100%)
 rename Ring/Ring/{ => Conversations}/ConversationCell.swift (100%)
 rename Ring/Ring/{ => Conversations}/ConversationCell.xib (100%)
 rename Ring/Ring/{ => Conversations}/ConversationModel.swift (100%)
 rename Ring/Ring/{ => Conversations}/ConversationSection.swift (100%)
 rename Ring/Ring/{ => Conversations}/ConversationViewController.swift (100%)
 rename Ring/Ring/{ => Conversations}/ConversationViewModel.swift (100%)
 rename Ring/Ring/{ => Messages}/MessageAccessoryView.swift (100%)
 rename Ring/Ring/{ => Messages}/MessageAccessoryView.xib (100%)
 rename Ring/Ring/{ => Messages}/MessageCell.swift (100%)
 rename Ring/Ring/{ => Messages}/MessageCell.xib (100%)
 rename Ring/Ring/{ => Messages}/MessageModel.swift (100%)
 rename Ring/Ring/{ => Messages}/MessageViewModel.swift (100%)
 rename Ring/Ring/{ => Services}/ConversationsService.swift (100%)
 rename Ring/Ring/{ => Services}/MessagesAdapterDelegate.swift (100%)
 rename Ring/Ring/{ => Services}/NameRegistrationAdapterDelegate.swift (100%)
 rename Ring/Ring/{ => Services}/NameService.swift (100%)
 rename Ring/Ring/{ => Settings}/AccountDetailsViewController.swift (100%)
 rename Ring/Ring/{ => Settings}/MeViewController.swift (100%)
 rename Ring/Ring/{ => Smartlist}/SmartlistViewController.swift (100%)
 rename Ring/Ring/{ => Smartlist}/SmartlistViewModel.swift (100%)
 rename Ring/Ring/{ => UI}/AccountTableViewCell.swift (100%)
 rename Ring/Ring/{ => UI}/RoundedTextField.swift (100%)
 rename Ring/Ring/{ => Walkthrough/Cell}/SwitchCell.swift (100%)
 rename Ring/Ring/{ => Walkthrough/Cell}/SwitchCell.xib (100%)
 rename Ring/Ring/{ => Walkthrough/Cell}/TextCell.swift (100%)
 rename Ring/Ring/{ => Walkthrough/Cell}/TextCell.xib (100%)
 rename Ring/Ring/{ => Walkthrough/Cell}/TextFieldCell.swift (100%)
 rename Ring/Ring/{ => Walkthrough/Cell}/TextFieldCell.xib (100%)
 rename Ring/Ring/{ => Walkthrough}/LinkDeviceToAccountViewController.swift (100%)
 rename Ring/Ring/{ => Walkthrough}/WelcomeViewController.swift (100%)

diff --git a/Ring/Ring.xcodeproj/project.pbxproj b/Ring/Ring.xcodeproj/project.pbxproj
index e951a32fb..90620558f 100644
--- a/Ring/Ring.xcodeproj/project.pbxproj
+++ b/Ring/Ring.xcodeproj/project.pbxproj
@@ -13,7 +13,6 @@
 		024B612C1DF7654F00C4F9DE /* DaemonServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 024B612B1DF7654F00C4F9DE /* DaemonServiceTests.swift */; };
 		024B61311DF7656A00C4F9DE /* FixtureFailInitDRingAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 024B612E1DF7656A00C4F9DE /* FixtureFailInitDRingAdapter.mm */; };
 		024B61321DF7656A00C4F9DE /* FixtureFailStartDRingAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 024B61301DF7656A00C4F9DE /* FixtureFailStartDRingAdapter.mm */; };
-		024B61331DF765CA00C4F9DE /* DaemonService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B22E081DF7585F000358C9 /* DaemonService.swift */; };
 		02674C851E0C757B0065EDF9 /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02674C811E0C757B0065EDF9 /* RxCocoa.framework */; };
 		02674C861E0C757B0065EDF9 /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02674C821E0C757B0065EDF9 /* RxSwift.framework */; };
 		0273C2FF1E0C438F00CF00BA /* AccountAdapterDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0273C2FE1E0C438F00CF00BA /* AccountAdapterDelegate.swift */; };
@@ -21,13 +20,11 @@
 		0273C3061E0C68B100CF00BA /* CreateRingAccountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0273C3041E0C68B100CF00BA /* CreateRingAccountViewController.swift */; };
 		0273C3081E0C68BF00CF00BA /* RoundedButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0273C3071E0C68BF00CF00BA /* RoundedButton.swift */; };
 		029CE9D71E1D8C860000C8E1 /* ServiceEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 029CE9D61E1D8C860000C8E1 /* ServiceEventTests.swift */; };
-		029CE9D81E1D8DC70000C8E1 /* ServiceEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C9B63E1E1D4E8C00F82F0C /* ServiceEvent.swift */; };
 		02AED8191DD4C4B100F740BA /* librestbed.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 02AED8181DD4C4B100F740BA /* librestbed.a */; };
 		02B22DFC1DF755BB000358C9 /* AccountModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B22DFA1DF755BB000358C9 /* AccountModel.swift */; };
 		02B22DFD1DF755BB000358C9 /* CreateRingAccountViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B22DFB1DF755BB000358C9 /* CreateRingAccountViewModel.swift */; };
 		02B22DFF1DF755DB000358C9 /* AccountsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B22DFE1DF755DB000358C9 /* AccountsService.swift */; };
 		02B22E011DF755E5000358C9 /* MainTabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B22E001DF755E5000358C9 /* MainTabBarViewController.swift */; };
-		02B22E031DF755F7000358C9 /* WalkthroughStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 02B22E021DF755F7000358C9 /* WalkthroughStoryboard.storyboard */; };
 		02B22E091DF7585F000358C9 /* DaemonService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02B22E081DF7585F000358C9 /* DaemonService.swift */; };
 		02C9B63F1E1D4E8C00F82F0C /* ServiceEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02C9B63E1E1D4E8C00F82F0C /* ServiceEvent.swift */; };
 		02DD80C81E1EAD70009A3510 /* AccountConfigModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DD80C71E1EAD70009A3510 /* AccountConfigModel.swift */; };
@@ -35,9 +32,7 @@
 		02DD80CD1E1EB2E4009A3510 /* ConfigKeyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DD80CC1E1EB2E4009A3510 /* ConfigKeyModel.swift */; };
 		02E1A0251DDE4ABA00D75B59 /* BoolStringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043866371D2304A700E06CE2 /* BoolStringExtension.swift */; };
 		043866211D218B1100E06CE2 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 043866201D218B1100E06CE2 /* AudioToolbox.framework */; };
-		043866331D22CE8C00E06CE2 /* MeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043866321D22CE8C00E06CE2 /* MeViewController.swift */; };
 		043866361D22D06500E06CE2 /* AccountTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043866351D22D06500E06CE2 /* AccountTableViewCell.swift */; };
-		0438663B1D2313B700E06CE2 /* AccountDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0438663A1D2313B700E06CE2 /* AccountDetailsViewController.swift */; };
 		043999F71D1C2D9D00E99CD9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 043999F61D1C2D9D00E99CD9 /* AppDelegate.swift */; };
 		04399A031D1C2D9D00E99CD9 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 04399A021D1C2D9D00E99CD9 /* Assets.xcassets */; };
 		04399A111D1C2D9D00E99CD9 /* RingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04399A101D1C2D9D00E99CD9 /* RingTests.swift */; };
@@ -97,10 +92,16 @@
 		04399B131D1C341A00E99CD9 /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AE11D1C341A00E99CD9 /* libvpx.a */; };
 		04399B141D1C341A00E99CD9 /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AE21D1C341A00E99CD9 /* libx264.a */; };
 		04399B151D1C341A00E99CD9 /* libyaml-cpp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 04399AE31D1C341A00E99CD9 /* libyaml-cpp.a */; };
+		1ABE07BA1F0C16F100D36361 /* ContactViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ABE07B91F0C16F100D36361 /* ContactViewModel.swift */; };
+		1ABE07BC1F0C22CC00D36361 /* WalkthroughStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1ABE07BB1F0C22CC00D36361 /* WalkthroughStoryboard.storyboard */; };
+		1ABE07C11F0C22FB00D36361 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1ABE07BD1F0C22FB00D36361 /* LaunchScreen.storyboard */; };
+		1ABE07C21F0C22FB00D36361 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1ABE07BF1F0C22FB00D36361 /* Main.storyboard */; };
 		5516C29F1E71CEFF009D3D2D /* AccountModelHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5516C29E1E71CEFF009D3D2D /* AccountModelHelper.swift */; };
 		5557FD4A1E81AE850043E394 /* AccountModelHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5557FD491E81AE850043E394 /* AccountModelHelperTests.swift */; };
-		5557FD4D1E81AFF50043E394 /* ConfigKeyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02DD80CC1E1EB2E4009A3510 /* ConfigKeyModel.swift */; };
 		557086521E8ADB9D001A7CE4 /* SystemAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 557086511E8ADB9D001A7CE4 /* SystemAdapter.mm */; };
+		5628B41C1F0C358D008B1E11 /* AccountDetailsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5628B41A1F0C358D008B1E11 /* AccountDetailsViewController.swift */; };
+		5628B41D1F0C358D008B1E11 /* MeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5628B41B1F0C358D008B1E11 /* MeViewController.swift */; };
+		5628B4211F0C35C8008B1E11 /* WelcomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5628B4201F0C35C8008B1E11 /* WelcomeViewController.swift */; };
 		562FB6CD1EFAD18A00C61A78 /* ConversationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 562FB6CC1EFAD18A00C61A78 /* ConversationViewController.swift */; };
 		56308BA71EA00E5700660275 /* NameRegistrationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 56308BA61EA00E5700660275 /* NameRegistrationResponse.m */; };
 		563AEC771EA664C0003A5641 /* RegistrationResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 563AEC761EA664C0003A5641 /* RegistrationResponse.m */; };
@@ -118,7 +119,6 @@
 		5669A7FE1EA904E4003C7B93 /* TextCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5669A7FD1EA904E4003C7B93 /* TextCell.xib */; };
 		5669A8031EAA58E6003C7B93 /* LinkDeviceToAccountViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5669A8021EAA58E6003C7B93 /* LinkDeviceToAccountViewController.swift */; };
 		568F56751EA7E5DE00132D7D /* PKHUD.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 568F56721EA7E38F00132D7D /* PKHUD.framework */; };
-		56AC64D51E7C7F4000EA1AA9 /* WelcomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56AC64D41E7C7F4000EA1AA9 /* WelcomeViewController.swift */; };
 		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 */; };
@@ -143,7 +143,6 @@
 		56BBC9D01EDC5E7000CDAF8B /* MessageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 56BBC9CA1EDC5E7000CDAF8B /* MessageCell.xib */; };
 		56BBC9D21EDC5E7000CDAF8B /* MessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56BBC9CC1EDC5E7000CDAF8B /* MessageViewModel.swift */; };
 		56BBC9D41EDC7A6D00CDAF8B /* libargon2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 56BBC9D31EDC7A6D00CDAF8B /* libargon2.a */; };
-		56BBC9D51EDCA85900CDAF8B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 043999FF1D1C2D9D00E99CD9 /* Main.storyboard */; };
 		56BBC9DF1EDDC9D300CDAF8B /* LookupNameResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 56BBC9DE1EDDC9D300CDAF8B /* LookupNameResponse.m */; };
 		56BBC9E01EDDC9E600CDAF8B /* ConversationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56BBC9AF1ED7155700CDAF8B /* ConversationViewModel.swift */; };
 		56BBC9E11EDDCA5900CDAF8B /* Walkthrough.strings in Resources */ = {isa = PBXBuildFile; fileRef = 56AC64DB1E8012CA00EA1AA9 /* Walkthrough.strings */; };
@@ -181,34 +180,29 @@
 		02674C811E0C757B0065EDF9 /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = Carthage/Build/iOS/RxCocoa.framework; sourceTree = "<group>"; };
 		02674C821E0C757B0065EDF9 /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/iOS/RxSwift.framework; sourceTree = "<group>"; };
 		02674C831E0C757B0065EDF9 /* RxTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxTest.framework; path = Carthage/Build/iOS/RxTest.framework; sourceTree = "<group>"; };
-		0273C2FE1E0C438F00CF00BA /* AccountAdapterDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AccountAdapterDelegate.swift; path = Services/AccountAdapterDelegate.swift; sourceTree = "<group>"; };
+		0273C2FE1E0C438F00CF00BA /* AccountAdapterDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountAdapterDelegate.swift; sourceTree = "<group>"; };
 		0273C3001E0C445200CF00BA /* RingPrefixHeader.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RingPrefixHeader.pch; path = Ring/RingPrefixHeader.pch; sourceTree = "<group>"; };
-		0273C3031E0C68B100CF00BA /* CreateProfileViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CreateProfileViewController.swift; path = Walkthrough/CreateProfileViewController.swift; sourceTree = "<group>"; };
-		0273C3041E0C68B100CF00BA /* CreateRingAccountViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CreateRingAccountViewController.swift; path = Walkthrough/CreateRingAccountViewController.swift; sourceTree = "<group>"; };
-		0273C3071E0C68BF00CF00BA /* RoundedButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = RoundedButton.swift; path = UI/RoundedButton.swift; sourceTree = "<group>"; };
+		0273C3031E0C68B100CF00BA /* CreateProfileViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CreateProfileViewController.swift; sourceTree = "<group>"; };
+		0273C3041E0C68B100CF00BA /* CreateRingAccountViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CreateRingAccountViewController.swift; sourceTree = "<group>"; };
+		0273C3071E0C68BF00CF00BA /* RoundedButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RoundedButton.swift; sourceTree = "<group>"; };
 		028568301DF610A9003A8D8D /* RingTests-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "RingTests-Bridging-Header.h"; sourceTree = "<group>"; };
 		029CE9D61E1D8C860000C8E1 /* ServiceEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServiceEventTests.swift; sourceTree = "<group>"; };
 		02AED8181DD4C4B100F740BA /* librestbed.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = librestbed.a; path = ../DEPS/x86_64/lib/librestbed.a; sourceTree = "<group>"; };
-		02B22DFA1DF755BB000358C9 /* AccountModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AccountModel.swift; path = Account/AccountModel.swift; sourceTree = "<group>"; };
-		02B22DFB1DF755BB000358C9 /* CreateRingAccountViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CreateRingAccountViewModel.swift; path = Account/CreateRingAccountViewModel.swift; sourceTree = "<group>"; };
-		02B22DFE1DF755DB000358C9 /* AccountsService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AccountsService.swift; path = Services/AccountsService.swift; sourceTree = "<group>"; };
-		02B22E001DF755E5000358C9 /* MainTabBarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MainTabBarViewController.swift; path = MainTabBar/MainTabBarViewController.swift; sourceTree = "<group>"; };
-		02B22E021DF755F7000358C9 /* WalkthroughStoryboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = WalkthroughStoryboard.storyboard; path = Walkthrough/WalkthroughStoryboard.storyboard; sourceTree = "<group>"; };
-		02B22E081DF7585F000358C9 /* DaemonService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DaemonService.swift; path = Services/DaemonService.swift; sourceTree = "<group>"; };
-		02C9B63E1E1D4E8C00F82F0C /* ServiceEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ServiceEvent.swift; path = Services/ServiceEvent.swift; sourceTree = "<group>"; };
-		02DD80C71E1EAD70009A3510 /* AccountConfigModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AccountConfigModel.swift; path = Account/AccountConfigModel.swift; sourceTree = "<group>"; };
-		02DD80C91E1EAF1A009A3510 /* AccountCredentialsModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AccountCredentialsModel.swift; path = Account/AccountCredentialsModel.swift; sourceTree = "<group>"; };
-		02DD80CC1E1EB2E4009A3510 /* ConfigKeyModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ConfigKeyModel.swift; path = Account/ConfigKeyModel.swift; sourceTree = "<group>"; };
+		02B22DFA1DF755BB000358C9 /* AccountModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountModel.swift; sourceTree = "<group>"; };
+		02B22DFB1DF755BB000358C9 /* CreateRingAccountViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CreateRingAccountViewModel.swift; sourceTree = "<group>"; };
+		02B22DFE1DF755DB000358C9 /* AccountsService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountsService.swift; sourceTree = "<group>"; };
+		02B22E001DF755E5000358C9 /* MainTabBarViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainTabBarViewController.swift; sourceTree = "<group>"; };
+		02B22E081DF7585F000358C9 /* DaemonService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DaemonService.swift; sourceTree = "<group>"; };
+		02C9B63E1E1D4E8C00F82F0C /* ServiceEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServiceEvent.swift; sourceTree = "<group>"; };
+		02DD80C71E1EAD70009A3510 /* AccountConfigModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountConfigModel.swift; sourceTree = "<group>"; };
+		02DD80C91E1EAF1A009A3510 /* AccountCredentialsModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountCredentialsModel.swift; sourceTree = "<group>"; };
+		02DD80CC1E1EB2E4009A3510 /* ConfigKeyModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfigKeyModel.swift; sourceTree = "<group>"; };
 		043866201D218B1100E06CE2 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
-		043866321D22CE8C00E06CE2 /* MeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MeViewController.swift; sourceTree = "<group>"; };
 		043866351D22D06500E06CE2 /* AccountTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountTableViewCell.swift; sourceTree = "<group>"; };
-		043866371D2304A700E06CE2 /* BoolStringExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BoolStringExtension.swift; path = Extensions/BoolStringExtension.swift; sourceTree = "<group>"; };
-		0438663A1D2313B700E06CE2 /* AccountDetailsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountDetailsViewController.swift; sourceTree = "<group>"; };
+		043866371D2304A700E06CE2 /* BoolStringExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BoolStringExtension.swift; sourceTree = "<group>"; };
 		043999F31D1C2D9D00E99CD9 /* Ring.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ring.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		043999F61D1C2D9D00E99CD9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
-		04399A001D1C2D9D00E99CD9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
 		04399A021D1C2D9D00E99CD9 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
-		04399A051D1C2D9D00E99CD9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
 		04399A071D1C2D9D00E99CD9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		04399A0C1D1C2D9D00E99CD9 /* RingTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RingTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
 		04399A101D1C2D9D00E99CD9 /* RingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RingTests.swift; sourceTree = "<group>"; };
@@ -221,13 +215,13 @@
 		04399A931D1C2F5800E99CD9 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; };
 		04399A951D1C2F6100E99CD9 /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = usr/lib/libbz2.tbd; sourceTree = SDKROOT; };
 		04399A961D1C2F6100E99CD9 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
-		04399AA51D1C304300E99CD9 /* AccountAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AccountAdapter.h; path = Bridging/AccountAdapter.h; sourceTree = "<group>"; };
-		04399AA61D1C304300E99CD9 /* AccountAdapter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AccountAdapter.mm; path = Bridging/AccountAdapter.mm; sourceTree = "<group>"; };
-		04399AA71D1C304300E99CD9 /* DRingAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DRingAdapter.h; path = Bridging/DRingAdapter.h; sourceTree = "<group>"; };
-		04399AA81D1C304300E99CD9 /* DRingAdapter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = DRingAdapter.mm; path = Bridging/DRingAdapter.mm; sourceTree = "<group>"; };
-		04399AA91D1C304300E99CD9 /* Ring-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "Ring-Bridging-Header.h"; path = "Bridging/Ring-Bridging-Header.h"; sourceTree = "<group>"; };
-		04399AAA1D1C304300E99CD9 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = Bridging/Utils.h; sourceTree = "<group>"; };
-		04399AAB1D1C304300E99CD9 /* Utils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Utils.mm; path = Bridging/Utils.mm; sourceTree = "<group>"; };
+		04399AA51D1C304300E99CD9 /* AccountAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccountAdapter.h; sourceTree = "<group>"; };
+		04399AA61D1C304300E99CD9 /* AccountAdapter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AccountAdapter.mm; sourceTree = "<group>"; };
+		04399AA71D1C304300E99CD9 /* DRingAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DRingAdapter.h; sourceTree = "<group>"; };
+		04399AA81D1C304300E99CD9 /* DRingAdapter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DRingAdapter.mm; sourceTree = "<group>"; };
+		04399AA91D1C304300E99CD9 /* Ring-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Ring-Bridging-Header.h"; sourceTree = "<group>"; };
+		04399AAA1D1C304300E99CD9 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utils.h; sourceTree = "<group>"; };
+		04399AAB1D1C304300E99CD9 /* Utils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Utils.mm; sourceTree = "<group>"; };
 		04399AB21D1C341A00E99CD9 /* libavcodec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavcodec.a; path = ../fat/lib/libavcodec.a; sourceTree = "<group>"; };
 		04399AB31D1C341A00E99CD9 /* libavdevice.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavdevice.a; path = ../fat/lib/libavdevice.a; sourceTree = "<group>"; };
 		04399AB41D1C341A00E99CD9 /* libavfilter.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavfilter.a; path = ../fat/lib/libavfilter.a; sourceTree = "<group>"; };
@@ -275,10 +269,17 @@
 		04399AE11D1C341A00E99CD9 /* libvpx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvpx.a; path = ../fat/lib/libvpx.a; sourceTree = "<group>"; };
 		04399AE21D1C341A00E99CD9 /* libx264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libx264.a; path = ../fat/lib/libx264.a; sourceTree = "<group>"; };
 		04399AE31D1C341A00E99CD9 /* libyaml-cpp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libyaml-cpp.a"; path = "../fat/lib/libyaml-cpp.a"; sourceTree = "<group>"; };
-		5516C29E1E71CEFF009D3D2D /* AccountModelHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AccountModelHelper.swift; path = Account/AccountModelHelper.swift; sourceTree = "<group>"; };
+		1ABE07B91F0C16F100D36361 /* ContactViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactViewModel.swift; sourceTree = "<group>"; };
+		1ABE07BB1F0C22CC00D36361 /* WalkthroughStoryboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = WalkthroughStoryboard.storyboard; sourceTree = "<group>"; };
+		1ABE07BE1F0C22FB00D36361 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+		1ABE07C01F0C22FB00D36361 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		5516C29E1E71CEFF009D3D2D /* AccountModelHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountModelHelper.swift; sourceTree = "<group>"; };
 		5557FD491E81AE850043E394 /* AccountModelHelperTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountModelHelperTests.swift; sourceTree = "<group>"; };
-		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>"; };
+		557086501E8ADB9D001A7CE4 /* SystemAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SystemAdapter.h; sourceTree = "<group>"; };
+		557086511E8ADB9D001A7CE4 /* SystemAdapter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SystemAdapter.mm; sourceTree = "<group>"; };
+		5628B41A1F0C358D008B1E11 /* AccountDetailsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountDetailsViewController.swift; sourceTree = "<group>"; };
+		5628B41B1F0C358D008B1E11 /* MeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MeViewController.swift; sourceTree = "<group>"; };
+		5628B4201F0C35C8008B1E11 /* WelcomeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WelcomeViewController.swift; sourceTree = "<group>"; };
 		562FB6CC1EFAD18A00C61A78 /* ConversationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConversationViewController.swift; sourceTree = "<group>"; };
 		56308BA51EA00E5700660275 /* NameRegistrationResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NameRegistrationResponse.h; sourceTree = "<group>"; };
 		56308BA61EA00E5700660275 /* NameRegistrationResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NameRegistrationResponse.m; sourceTree = "<group>"; };
@@ -292,7 +293,6 @@
 		564C445F1E943C37000F92B1 /* NameRegistrationAdapter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NameRegistrationAdapter.mm; sourceTree = "<group>"; };
 		564C44611E943DE6000F92B1 /* NameService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NameService.swift; sourceTree = "<group>"; };
 		564C44631E943E1E000F92B1 /* NameRegistrationAdapterDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NameRegistrationAdapterDelegate.swift; sourceTree = "<group>"; };
-		56559B161EEED50D00BF20E1 /* Colors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = "<group>"; };
 		56559B0D1EE8777600BF20E1 /* RxRealm.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxRealm.framework; path = Carthage/Build/iOS/RxRealm.framework; sourceTree = "<group>"; };
 		56559B131EE89E7900BF20E1 /* DeviceModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceModel.swift; sourceTree = "<group>"; };
 		5669A7F91EA904AF003C7B93 /* SwitchCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SwitchCell.xib; sourceTree = "<group>"; };
@@ -300,7 +300,6 @@
 		5669A7FD1EA904E4003C7B93 /* TextCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TextCell.xib; sourceTree = "<group>"; };
 		5669A8021EAA58E6003C7B93 /* LinkDeviceToAccountViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LinkDeviceToAccountViewController.swift; sourceTree = "<group>"; };
 		568F56721EA7E38F00132D7D /* PKHUD.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PKHUD.framework; path = Carthage/Build/iOS/PKHUD.framework; sourceTree = "<group>"; };
-		56AC64D41E7C7F4000EA1AA9 /* WelcomeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WelcomeViewController.swift; 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>"; };
@@ -312,15 +311,15 @@
 		56BBC9A11ED714DF00CDAF8B /* ConversationsService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConversationsService.swift; sourceTree = "<group>"; };
 		56BBC9A51ED7151500CDAF8B /* MessageModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageModel.swift; sourceTree = "<group>"; };
 		56BBC9A71ED7152300CDAF8B /* SmartlistViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SmartlistViewController.swift; sourceTree = "<group>"; };
-		56BBC9A91ED7153800CDAF8B /* Global.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Global.strings; sourceTree = "<group>"; };
-		56BBC9AB1ED7154300CDAF8B /* Smartlist.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; path = Smartlist.strings; sourceTree = "<group>"; };
+		56BBC9A91ED7153800CDAF8B /* Global.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Global.strings; path = Base.lproj/Global.strings; sourceTree = "<group>"; };
+		56BBC9AB1ED7154300CDAF8B /* Smartlist.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = Smartlist.strings; path = Base.lproj/Smartlist.strings; sourceTree = "<group>"; };
 		56BBC9AE1ED7155700CDAF8B /* ConversationModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConversationModel.swift; sourceTree = "<group>"; };
 		56BBC9AF1ED7155700CDAF8B /* ConversationViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConversationViewModel.swift; sourceTree = "<group>"; };
 		56BBC9B21ED7156500CDAF8B /* ConversationCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConversationCell.swift; sourceTree = "<group>"; };
 		56BBC9B31ED7156500CDAF8B /* ConversationCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConversationCell.xib; sourceTree = "<group>"; };
 		56BBC9B71ED715FE00CDAF8B /* ContactModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactModel.swift; sourceTree = "<group>"; };
 		56BBC9B81ED715FE00CDAF8B /* ContactHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactHelper.swift; sourceTree = "<group>"; };
-		56BBC9BB1ED7161200CDAF8B /* Date+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Date+Helpers.swift"; path = "Extensions/Date+Helpers.swift"; sourceTree = "<group>"; };
+		56BBC9BB1ED7161200CDAF8B /* Date+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Date+Helpers.swift"; sourceTree = "<group>"; };
 		56BBC9BE1ED7168400CDAF8B /* SmartlistViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SmartlistViewModel.swift; sourceTree = "<group>"; };
 		56BBC9C71EDC5E7000CDAF8B /* MessageAccessoryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageAccessoryView.swift; sourceTree = "<group>"; };
 		56BBC9C81EDC5E7000CDAF8B /* MessageAccessoryView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MessageAccessoryView.xib; sourceTree = "<group>"; };
@@ -427,11 +426,13 @@
 			isa = PBXGroup;
 			children = (
 				56AC64DD1E804EB500EA1AA9 /* Cells */,
+				5628B4201F0C35C8008B1E11 /* WelcomeViewController.swift */,
 				0273C3031E0C68B100CF00BA /* CreateProfileViewController.swift */,
 				0273C3041E0C68B100CF00BA /* CreateRingAccountViewController.swift */,
 				5669A8021EAA58E6003C7B93 /* LinkDeviceToAccountViewController.swift */,
+				1ABE07BB1F0C22CC00D36361 /* WalkthroughStoryboard.storyboard */,
 			);
-			name = Walkthrough;
+			path = Walkthrough;
 			sourceTree = "<group>";
 		};
 		028568231DF60E5C003A8D8D /* Fixtures */ = {
@@ -469,16 +470,6 @@
 			name = Frameworks;
 			sourceTree = "<group>";
 		};
-		02DE64671DDD15FC007D20EC /* Storyboards */ = {
-			isa = PBXGroup;
-			children = (
-				02B22E021DF755F7000358C9 /* WalkthroughStoryboard.storyboard */,
-				043999FF1D1C2D9D00E99CD9 /* Main.storyboard */,
-				04399A041D1C2D9D00E99CD9 /* LaunchScreen.storyboard */,
-			);
-			name = Storyboards;
-			sourceTree = "<group>";
-		};
 		02E1A0261DDE4C2E00D75B59 /* Services */ = {
 			isa = PBXGroup;
 			children = (
@@ -491,7 +482,7 @@
 				564C44611E943DE6000F92B1 /* NameService.swift */,
 				564C44631E943E1E000F92B1 /* NameRegistrationAdapterDelegate.swift */,
 			);
-			name = Services;
+			path = Services;
 			sourceTree = "<group>";
 		};
 		02E1A0271DDE4C3900D75B59 /* Account */ = {
@@ -505,7 +496,7 @@
 				02DD80CC1E1EB2E4009A3510 /* ConfigKeyModel.swift */,
 				56559B131EE89E7900BF20E1 /* DeviceModel.swift */,
 			);
-			name = Account;
+			path = Account;
 			sourceTree = "<group>";
 		};
 		02EFCACF1E0C3DD600FD8ED1 /* Bridging */ = {
@@ -523,7 +514,7 @@
 				563AEC741EA66487003A5641 /* AccountCreation */,
 				563AEC731EA6627F003A5641 /* NameRegistration */,
 			);
-			name = Bridging;
+			path = Bridging;
 			sourceTree = "<group>";
 		};
 		02F9B1C21DDDFF0E00FE123D /* MainTabBar */ = {
@@ -531,17 +522,7 @@
 			children = (
 				02B22E001DF755E5000358C9 /* MainTabBarViewController.swift */,
 			);
-			name = MainTabBar;
-			sourceTree = "<group>";
-		};
-		0438662D1D22C87500E06CE2 /* ViewController */ = {
-			isa = PBXGroup;
-			children = (
-				043866321D22CE8C00E06CE2 /* MeViewController.swift */,
-				0438663A1D2313B700E06CE2 /* AccountDetailsViewController.swift */,
-				56AC64D41E7C7F4000EA1AA9 /* WelcomeViewController.swift */,
-			);
-			name = ViewController;
+			path = MainTabBar;
 			sourceTree = "<group>";
 		};
 		043866341D22D04E00E06CE2 /* UI */ = {
@@ -551,7 +532,7 @@
 				043866351D22D06500E06CE2 /* AccountTableViewCell.swift */,
 				56AC650D1E85694D00EA1AA9 /* RoundedTextField.swift */,
 			);
-			name = UI;
+			path = UI;
 			sourceTree = "<group>";
 		};
 		043866391D2307C000E06CE2 /* Extensions */ = {
@@ -560,7 +541,7 @@
 				56BBC9BB1ED7161200CDAF8B /* Date+Helpers.swift */,
 				043866371D2304A700E06CE2 /* BoolStringExtension.swift */,
 			);
-			name = Extensions;
+			path = Extensions;
 			sourceTree = "<group>";
 		};
 		043999EA1D1C2D9D00E99CD9 = {
@@ -601,10 +582,11 @@
 				02E1A0271DDE4C3900D75B59 /* Account */,
 				02E1A0261DDE4C2E00D75B59 /* Services */,
 				02F9B1C21DDDFF0E00FE123D /* MainTabBar */,
-				02DE64671DDD15FC007D20EC /* Storyboards */,
 				043866341D22D04E00E06CE2 /* UI */,
-				0438662D1D22C87500E06CE2 /* ViewController */,
 				043866391D2307C000E06CE2 /* Extensions */,
+				5628B4191F0C358D008B1E11 /* Settings */,
+				1ABE07BD1F0C22FB00D36361 /* LaunchScreen.storyboard */,
+				1ABE07BF1F0C22FB00D36361 /* Main.storyboard */,
 				043999F61D1C2D9D00E99CD9 /* AppDelegate.swift */,
 				04399A021D1C2D9D00E99CD9 /* Assets.xcassets */,
 				04399A071D1C2D9D00E99CD9 /* Info.plist */,
@@ -706,6 +688,15 @@
 			name = SYS_DEPS;
 			sourceTree = "<group>";
 		};
+		5628B4191F0C358D008B1E11 /* Settings */ = {
+			isa = PBXGroup;
+			children = (
+				5628B41A1F0C358D008B1E11 /* AccountDetailsViewController.swift */,
+				5628B41B1F0C358D008B1E11 /* MeViewController.swift */,
+			);
+			path = Settings;
+			sourceTree = "<group>";
+		};
 		563AEC731EA6627F003A5641 /* NameRegistration */ = {
 			isa = PBXGroup;
 			children = (
@@ -716,7 +707,7 @@
 				56308BA51EA00E5700660275 /* NameRegistrationResponse.h */,
 				56308BA61EA00E5700660275 /* NameRegistrationResponse.m */,
 			);
-			name = NameRegistration;
+			path = NameRegistration;
 			sourceTree = "<group>";
 		};
 		563AEC741EA66487003A5641 /* AccountCreation */ = {
@@ -727,7 +718,7 @@
 				563AEC751EA664C0003A5641 /* RegistrationResponse.h */,
 				563AEC761EA664C0003A5641 /* RegistrationResponse.m */,
 			);
-			name = AccountCreation;
+			path = AccountCreation;
 			sourceTree = "<group>";
 		};
 		564C44571E8D7F68000F92B1 /* Constants */ = {
@@ -736,9 +727,8 @@
 				56BBC9E61EDE1DDF00CDAF8B /* Colors.swift */,
 				564C44581E8D7F8F000F92B1 /* LocalizedStringTableNames.swift */,
 				564C445A1E8EA44E000F92B1 /* Durations.swift */,
-				56559B161EEED50D00BF20E1 /* Colors.swift */,
 			);
-			name = Constants;
+			path = Constants;
 			sourceTree = "<group>";
 		};
 		56AC64D61E80121200EA1AA9 /* Internationalization */ = {
@@ -762,6 +752,7 @@
 				5669A7FD1EA904E4003C7B93 /* TextCell.xib */,
 			);
 			name = Cells;
+			path = Cell;
 			sourceTree = "<group>";
 		};
 		56BBC9A41ED7150200CDAF8B /* Messages */ = {
@@ -774,7 +765,7 @@
 				56BBC9CC1EDC5E7000CDAF8B /* MessageViewModel.swift */,
 				56BBC9A51ED7151500CDAF8B /* MessageModel.swift */,
 			);
-			name = Messages;
+			path = Messages;
 			sourceTree = "<group>";
 		};
 		56BBC9AD1ED7154800CDAF8B /* Conversations */ = {
@@ -787,16 +778,17 @@
 				56BBC9AE1ED7155700CDAF8B /* ConversationModel.swift */,
 				56BBC9AF1ED7155700CDAF8B /* ConversationViewModel.swift */,
 			);
-			name = Conversations;
+			path = Conversations;
 			sourceTree = "<group>";
 		};
 		56BBC9B61ED7158600CDAF8B /* Contacts */ = {
 			isa = PBXGroup;
 			children = (
+				1ABE07B91F0C16F100D36361 /* ContactViewModel.swift */,
 				56BBC9B71ED715FE00CDAF8B /* ContactModel.swift */,
 				56BBC9B81ED715FE00CDAF8B /* ContactHelper.swift */,
 			);
-			name = Contacts;
+			path = Contacts;
 			sourceTree = "<group>";
 		};
 		56BBC9BD1ED7165800CDAF8B /* Smartlist */ = {
@@ -805,7 +797,7 @@
 				56BBC9BE1ED7168400CDAF8B /* SmartlistViewModel.swift */,
 				56BBC9A71ED7152300CDAF8B /* SmartlistViewController.swift */,
 			);
-			name = Smartlist;
+			path = Smartlist;
 			sourceTree = "<group>";
 		};
 /* End PBXGroup section */
@@ -922,17 +914,18 @@
 			isa = PBXResourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				02B22E031DF755F7000358C9 /* WalkthroughStoryboard.storyboard in Resources */,
 				5669A7FE1EA904E4003C7B93 /* TextCell.xib in Resources */,
 				56BBC9AC1ED7154300CDAF8B /* Smartlist.strings in Resources */,
 				56BBC9AA1ED7153800CDAF8B /* Global.strings in Resources */,
 				56BBC9CE1EDC5E7000CDAF8B /* MessageAccessoryView.xib in Resources */,
-				56BBC9D51EDCA85900CDAF8B /* Main.storyboard in Resources */,
 				04399A031D1C2D9D00E99CD9 /* Assets.xcassets in Resources */,
 				56BBC9D01EDC5E7000CDAF8B /* MessageCell.xib in Resources */,
 				5669A7FA1EA904AF003C7B93 /* SwitchCell.xib in Resources */,
+				1ABE07C21F0C22FB00D36361 /* Main.storyboard in Resources */,
 				56BBC9B51ED7156500CDAF8B /* ConversationCell.xib in Resources */,
 				5669A7FC1EA904D2003C7B93 /* TextFieldCell.xib in Resources */,
+				1ABE07C11F0C22FB00D36361 /* LaunchScreen.storyboard in Resources */,
+				1ABE07BC1F0C22CC00D36361 /* WalkthroughStoryboard.storyboard in Resources */,
 				56BBC9E11EDDCA5900CDAF8B /* Walkthrough.strings in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -998,8 +991,9 @@
 				56BBC9A81ED7152300CDAF8B /* SmartlistViewController.swift in Sources */,
 				5516C29F1E71CEFF009D3D2D /* AccountModelHelper.swift in Sources */,
 				56559B141EE89E7900BF20E1 /* DeviceModel.swift in Sources */,
-				569D86581ECF62510064D88B /* ContactsAdapter.mm in Sources */,
 				56308BA71EA00E5700660275 /* NameRegistrationResponse.m in Sources */,
+				5628B4211F0C35C8008B1E11 /* WelcomeViewController.swift in Sources */,
+				5628B41C1F0C358D008B1E11 /* AccountDetailsViewController.swift in Sources */,
 				56AC64E11E80542300EA1AA9 /* TextFieldCell.swift in Sources */,
 				56AC64E31E805F0200EA1AA9 /* TextCell.swift in Sources */,
 				56AC650E1E85694D00EA1AA9 /* RoundedTextField.swift in Sources */,
@@ -1008,7 +1002,6 @@
 				564C44641E943E1E000F92B1 /* NameRegistrationAdapterDelegate.swift in Sources */,
 				043999F71D1C2D9D00E99CD9 /* AppDelegate.swift in Sources */,
 				02B22DFC1DF755BB000358C9 /* AccountModel.swift in Sources */,
-				043866331D22CE8C00E06CE2 /* MeViewController.swift in Sources */,
 				56AC64DF1E804ECC00EA1AA9 /* SwitchCell.swift in Sources */,
 				56BBC9E71EDE1DDF00CDAF8B /* Colors.swift in Sources */,
 				56BBC9B91ED715FE00CDAF8B /* ContactModel.swift in Sources */,
@@ -1019,7 +1012,6 @@
 				563AEC771EA664C0003A5641 /* RegistrationResponse.m in Sources */,
 				02B22DFD1DF755BB000358C9 /* CreateRingAccountViewModel.swift in Sources */,
 				564C445B1E8EA44E000F92B1 /* Durations.swift in Sources */,
-				0438663B1D2313B700E06CE2 /* AccountDetailsViewController.swift in Sources */,
 				56BBC9DF1EDDC9D300CDAF8B /* LookupNameResponse.m in Sources */,
 				56BBC9CD1EDC5E7000CDAF8B /* MessageAccessoryView.swift in Sources */,
 				02DD80CA1E1EAF1A009A3510 /* AccountCredentialsModel.swift in Sources */,
@@ -1028,16 +1020,17 @@
 				562FB6CD1EFAD18A00C61A78 /* ConversationViewController.swift in Sources */,
 				564C44621E943DE6000F92B1 /* NameService.swift in Sources */,
 				56BBC9E01EDDC9E600CDAF8B /* ConversationViewModel.swift in Sources */,
+				1ABE07BA1F0C16F100D36361 /* ContactViewModel.swift in Sources */,
 				043866361D22D06500E06CE2 /* AccountTableViewCell.swift in Sources */,
 				04399AAD1D1C304300E99CD9 /* DRingAdapter.mm in Sources */,
 				0273C2FF1E0C438F00CF00BA /* AccountAdapterDelegate.swift in Sources */,
 				02B22DFF1DF755DB000358C9 /* AccountsService.swift in Sources */,
+				5628B41D1F0C358D008B1E11 /* MeViewController.swift in Sources */,
 				56BBC9A61ED7151500CDAF8B /* MessageModel.swift in Sources */,
 				56BBC9A21ED714DF00CDAF8B /* MessagesAdapterDelegate.swift in Sources */,
 				56BBC9B41ED7156500CDAF8B /* ConversationCell.swift in Sources */,
 				564C44601E943C37000F92B1 /* NameRegistrationAdapter.mm in Sources */,
 				564C44591E8D7F8F000F92B1 /* LocalizedStringTableNames.swift in Sources */,
-				56AC64D51E7C7F4000EA1AA9 /* WelcomeViewController.swift in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1047,12 +1040,9 @@
 			files = (
 				024B61311DF7656A00C4F9DE /* FixtureFailInitDRingAdapter.mm in Sources */,
 				5557FD4A1E81AE850043E394 /* AccountModelHelperTests.swift in Sources */,
-				024B61331DF765CA00C4F9DE /* DaemonService.swift in Sources */,
 				04399A111D1C2D9D00E99CD9 /* RingTests.swift in Sources */,
 				029CE9D71E1D8C860000C8E1 /* ServiceEventTests.swift in Sources */,
-				5557FD4D1E81AFF50043E394 /* ConfigKeyModel.swift in Sources */,
 				024B612C1DF7654F00C4F9DE /* DaemonServiceTests.swift in Sources */,
-				029CE9D81E1D8DC70000C8E1 /* ServiceEvent.swift in Sources */,
 				024B61321DF7656A00C4F9DE /* FixtureFailStartDRingAdapter.mm in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1081,20 +1071,20 @@
 /* End PBXTargetDependency section */
 
 /* Begin PBXVariantGroup section */
-		043999FF1D1C2D9D00E99CD9 /* Main.storyboard */ = {
+		1ABE07BD1F0C22FB00D36361 /* LaunchScreen.storyboard */ = {
 			isa = PBXVariantGroup;
 			children = (
-				04399A001D1C2D9D00E99CD9 /* Base */,
+				1ABE07BE1F0C22FB00D36361 /* Base */,
 			);
-			name = Main.storyboard;
+			name = LaunchScreen.storyboard;
 			sourceTree = "<group>";
 		};
-		04399A041D1C2D9D00E99CD9 /* LaunchScreen.storyboard */ = {
+		1ABE07BF1F0C22FB00D36361 /* Main.storyboard */ = {
 			isa = PBXVariantGroup;
 			children = (
-				04399A051D1C2D9D00E99CD9 /* Base */,
+				1ABE07C01F0C22FB00D36361 /* Base */,
 			);
-			name = LaunchScreen.storyboard;
+			name = Main.storyboard;
 			sourceTree = "<group>";
 		};
 		56AC64DB1E8012CA00EA1AA9 /* Walkthrough.strings */ = {
diff --git a/Ring/Ring/DeviceModel.swift b/Ring/Ring/Account/DeviceModel.swift
similarity index 100%
rename from Ring/Ring/DeviceModel.swift
rename to Ring/Ring/Account/DeviceModel.swift
diff --git a/Ring/Ring/Global.strings b/Ring/Ring/Base.lproj/Global.strings
similarity index 100%
rename from Ring/Ring/Global.strings
rename to Ring/Ring/Base.lproj/Global.strings
diff --git a/Ring/Ring/Smartlist.strings b/Ring/Ring/Base.lproj/Smartlist.strings
similarity index 100%
rename from Ring/Ring/Smartlist.strings
rename to Ring/Ring/Base.lproj/Smartlist.strings
diff --git a/Ring/Ring/Bridging/AccountAdapter.h b/Ring/Ring/Bridging/AccountCreation/AccountAdapter.h
similarity index 100%
rename from Ring/Ring/Bridging/AccountAdapter.h
rename to Ring/Ring/Bridging/AccountCreation/AccountAdapter.h
diff --git a/Ring/Ring/Bridging/AccountAdapter.mm b/Ring/Ring/Bridging/AccountCreation/AccountAdapter.mm
similarity index 100%
rename from Ring/Ring/Bridging/AccountAdapter.mm
rename to Ring/Ring/Bridging/AccountCreation/AccountAdapter.mm
diff --git a/Ring/Ring/RegistrationResponse.h b/Ring/Ring/Bridging/AccountCreation/RegistrationResponse.h
similarity index 100%
rename from Ring/Ring/RegistrationResponse.h
rename to Ring/Ring/Bridging/AccountCreation/RegistrationResponse.h
diff --git a/Ring/Ring/RegistrationResponse.m b/Ring/Ring/Bridging/AccountCreation/RegistrationResponse.m
similarity index 100%
rename from Ring/Ring/RegistrationResponse.m
rename to Ring/Ring/Bridging/AccountCreation/RegistrationResponse.m
diff --git a/Ring/Ring/MessagesAdapter.h b/Ring/Ring/Bridging/MessagesAdapter.h
similarity index 100%
rename from Ring/Ring/MessagesAdapter.h
rename to Ring/Ring/Bridging/MessagesAdapter.h
diff --git a/Ring/Ring/MessagesAdapter.mm b/Ring/Ring/Bridging/MessagesAdapter.mm
similarity index 100%
rename from Ring/Ring/MessagesAdapter.mm
rename to Ring/Ring/Bridging/MessagesAdapter.mm
diff --git a/Ring/Ring/LookupNameResponse.h b/Ring/Ring/Bridging/NameRegistration/LookupNameResponse.h
similarity index 100%
rename from Ring/Ring/LookupNameResponse.h
rename to Ring/Ring/Bridging/NameRegistration/LookupNameResponse.h
diff --git a/Ring/Ring/LookupNameResponse.m b/Ring/Ring/Bridging/NameRegistration/LookupNameResponse.m
similarity index 100%
rename from Ring/Ring/LookupNameResponse.m
rename to Ring/Ring/Bridging/NameRegistration/LookupNameResponse.m
diff --git a/Ring/Ring/NameRegistrationAdapter.h b/Ring/Ring/Bridging/NameRegistration/NameRegistrationAdapter.h
similarity index 100%
rename from Ring/Ring/NameRegistrationAdapter.h
rename to Ring/Ring/Bridging/NameRegistration/NameRegistrationAdapter.h
diff --git a/Ring/Ring/NameRegistrationAdapter.mm b/Ring/Ring/Bridging/NameRegistration/NameRegistrationAdapter.mm
similarity index 100%
rename from Ring/Ring/NameRegistrationAdapter.mm
rename to Ring/Ring/Bridging/NameRegistration/NameRegistrationAdapter.mm
diff --git a/Ring/Ring/NameRegistrationResponse.h b/Ring/Ring/Bridging/NameRegistration/NameRegistrationResponse.h
similarity index 100%
rename from Ring/Ring/NameRegistrationResponse.h
rename to Ring/Ring/Bridging/NameRegistration/NameRegistrationResponse.h
diff --git a/Ring/Ring/NameRegistrationResponse.m b/Ring/Ring/Bridging/NameRegistration/NameRegistrationResponse.m
similarity index 100%
rename from Ring/Ring/NameRegistrationResponse.m
rename to Ring/Ring/Bridging/NameRegistration/NameRegistrationResponse.m
diff --git a/Ring/Ring/Colors.swift b/Ring/Ring/Constants/Colors.swift
similarity index 100%
rename from Ring/Ring/Colors.swift
rename to Ring/Ring/Constants/Colors.swift
diff --git a/Ring/Ring/Durations.swift b/Ring/Ring/Constants/Durations.swift
similarity index 100%
rename from Ring/Ring/Durations.swift
rename to Ring/Ring/Constants/Durations.swift
diff --git a/Ring/Ring/LocalizedStringTableNames.swift b/Ring/Ring/Constants/LocalizedStringTableNames.swift
similarity index 100%
rename from Ring/Ring/LocalizedStringTableNames.swift
rename to Ring/Ring/Constants/LocalizedStringTableNames.swift
diff --git a/Ring/Ring/ContactHelper.swift b/Ring/Ring/Contacts/ContactHelper.swift
similarity index 100%
rename from Ring/Ring/ContactHelper.swift
rename to Ring/Ring/Contacts/ContactHelper.swift
diff --git a/Ring/Ring/ContactModel.swift b/Ring/Ring/Contacts/ContactModel.swift
similarity index 100%
rename from Ring/Ring/ContactModel.swift
rename to Ring/Ring/Contacts/ContactModel.swift
diff --git a/Ring/Ring/ContactViewModel.swift b/Ring/Ring/Contacts/ContactViewModel.swift
similarity index 100%
rename from Ring/Ring/ContactViewModel.swift
rename to Ring/Ring/Contacts/ContactViewModel.swift
diff --git a/Ring/Ring/ConversationCell.swift b/Ring/Ring/Conversations/ConversationCell.swift
similarity index 100%
rename from Ring/Ring/ConversationCell.swift
rename to Ring/Ring/Conversations/ConversationCell.swift
diff --git a/Ring/Ring/ConversationCell.xib b/Ring/Ring/Conversations/ConversationCell.xib
similarity index 100%
rename from Ring/Ring/ConversationCell.xib
rename to Ring/Ring/Conversations/ConversationCell.xib
diff --git a/Ring/Ring/ConversationModel.swift b/Ring/Ring/Conversations/ConversationModel.swift
similarity index 100%
rename from Ring/Ring/ConversationModel.swift
rename to Ring/Ring/Conversations/ConversationModel.swift
diff --git a/Ring/Ring/ConversationSection.swift b/Ring/Ring/Conversations/ConversationSection.swift
similarity index 100%
rename from Ring/Ring/ConversationSection.swift
rename to Ring/Ring/Conversations/ConversationSection.swift
diff --git a/Ring/Ring/ConversationViewController.swift b/Ring/Ring/Conversations/ConversationViewController.swift
similarity index 100%
rename from Ring/Ring/ConversationViewController.swift
rename to Ring/Ring/Conversations/ConversationViewController.swift
diff --git a/Ring/Ring/ConversationViewModel.swift b/Ring/Ring/Conversations/ConversationViewModel.swift
similarity index 100%
rename from Ring/Ring/ConversationViewModel.swift
rename to Ring/Ring/Conversations/ConversationViewModel.swift
diff --git a/Ring/Ring/MessageAccessoryView.swift b/Ring/Ring/Messages/MessageAccessoryView.swift
similarity index 100%
rename from Ring/Ring/MessageAccessoryView.swift
rename to Ring/Ring/Messages/MessageAccessoryView.swift
diff --git a/Ring/Ring/MessageAccessoryView.xib b/Ring/Ring/Messages/MessageAccessoryView.xib
similarity index 100%
rename from Ring/Ring/MessageAccessoryView.xib
rename to Ring/Ring/Messages/MessageAccessoryView.xib
diff --git a/Ring/Ring/MessageCell.swift b/Ring/Ring/Messages/MessageCell.swift
similarity index 100%
rename from Ring/Ring/MessageCell.swift
rename to Ring/Ring/Messages/MessageCell.swift
diff --git a/Ring/Ring/MessageCell.xib b/Ring/Ring/Messages/MessageCell.xib
similarity index 100%
rename from Ring/Ring/MessageCell.xib
rename to Ring/Ring/Messages/MessageCell.xib
diff --git a/Ring/Ring/MessageModel.swift b/Ring/Ring/Messages/MessageModel.swift
similarity index 100%
rename from Ring/Ring/MessageModel.swift
rename to Ring/Ring/Messages/MessageModel.swift
diff --git a/Ring/Ring/MessageViewModel.swift b/Ring/Ring/Messages/MessageViewModel.swift
similarity index 100%
rename from Ring/Ring/MessageViewModel.swift
rename to Ring/Ring/Messages/MessageViewModel.swift
diff --git a/Ring/Ring/ConversationsService.swift b/Ring/Ring/Services/ConversationsService.swift
similarity index 100%
rename from Ring/Ring/ConversationsService.swift
rename to Ring/Ring/Services/ConversationsService.swift
diff --git a/Ring/Ring/MessagesAdapterDelegate.swift b/Ring/Ring/Services/MessagesAdapterDelegate.swift
similarity index 100%
rename from Ring/Ring/MessagesAdapterDelegate.swift
rename to Ring/Ring/Services/MessagesAdapterDelegate.swift
diff --git a/Ring/Ring/NameRegistrationAdapterDelegate.swift b/Ring/Ring/Services/NameRegistrationAdapterDelegate.swift
similarity index 100%
rename from Ring/Ring/NameRegistrationAdapterDelegate.swift
rename to Ring/Ring/Services/NameRegistrationAdapterDelegate.swift
diff --git a/Ring/Ring/NameService.swift b/Ring/Ring/Services/NameService.swift
similarity index 100%
rename from Ring/Ring/NameService.swift
rename to Ring/Ring/Services/NameService.swift
diff --git a/Ring/Ring/AccountDetailsViewController.swift b/Ring/Ring/Settings/AccountDetailsViewController.swift
similarity index 100%
rename from Ring/Ring/AccountDetailsViewController.swift
rename to Ring/Ring/Settings/AccountDetailsViewController.swift
diff --git a/Ring/Ring/MeViewController.swift b/Ring/Ring/Settings/MeViewController.swift
similarity index 100%
rename from Ring/Ring/MeViewController.swift
rename to Ring/Ring/Settings/MeViewController.swift
diff --git a/Ring/Ring/SmartlistViewController.swift b/Ring/Ring/Smartlist/SmartlistViewController.swift
similarity index 100%
rename from Ring/Ring/SmartlistViewController.swift
rename to Ring/Ring/Smartlist/SmartlistViewController.swift
diff --git a/Ring/Ring/SmartlistViewModel.swift b/Ring/Ring/Smartlist/SmartlistViewModel.swift
similarity index 100%
rename from Ring/Ring/SmartlistViewModel.swift
rename to Ring/Ring/Smartlist/SmartlistViewModel.swift
diff --git a/Ring/Ring/AccountTableViewCell.swift b/Ring/Ring/UI/AccountTableViewCell.swift
similarity index 100%
rename from Ring/Ring/AccountTableViewCell.swift
rename to Ring/Ring/UI/AccountTableViewCell.swift
diff --git a/Ring/Ring/RoundedTextField.swift b/Ring/Ring/UI/RoundedTextField.swift
similarity index 100%
rename from Ring/Ring/RoundedTextField.swift
rename to Ring/Ring/UI/RoundedTextField.swift
diff --git a/Ring/Ring/SwitchCell.swift b/Ring/Ring/Walkthrough/Cell/SwitchCell.swift
similarity index 100%
rename from Ring/Ring/SwitchCell.swift
rename to Ring/Ring/Walkthrough/Cell/SwitchCell.swift
diff --git a/Ring/Ring/SwitchCell.xib b/Ring/Ring/Walkthrough/Cell/SwitchCell.xib
similarity index 100%
rename from Ring/Ring/SwitchCell.xib
rename to Ring/Ring/Walkthrough/Cell/SwitchCell.xib
diff --git a/Ring/Ring/TextCell.swift b/Ring/Ring/Walkthrough/Cell/TextCell.swift
similarity index 100%
rename from Ring/Ring/TextCell.swift
rename to Ring/Ring/Walkthrough/Cell/TextCell.swift
diff --git a/Ring/Ring/TextCell.xib b/Ring/Ring/Walkthrough/Cell/TextCell.xib
similarity index 100%
rename from Ring/Ring/TextCell.xib
rename to Ring/Ring/Walkthrough/Cell/TextCell.xib
diff --git a/Ring/Ring/TextFieldCell.swift b/Ring/Ring/Walkthrough/Cell/TextFieldCell.swift
similarity index 100%
rename from Ring/Ring/TextFieldCell.swift
rename to Ring/Ring/Walkthrough/Cell/TextFieldCell.swift
diff --git a/Ring/Ring/TextFieldCell.xib b/Ring/Ring/Walkthrough/Cell/TextFieldCell.xib
similarity index 100%
rename from Ring/Ring/TextFieldCell.xib
rename to Ring/Ring/Walkthrough/Cell/TextFieldCell.xib
diff --git a/Ring/Ring/LinkDeviceToAccountViewController.swift b/Ring/Ring/Walkthrough/LinkDeviceToAccountViewController.swift
similarity index 100%
rename from Ring/Ring/LinkDeviceToAccountViewController.swift
rename to Ring/Ring/Walkthrough/LinkDeviceToAccountViewController.swift
diff --git a/Ring/Ring/WelcomeViewController.swift b/Ring/Ring/Walkthrough/WelcomeViewController.swift
similarity index 100%
rename from Ring/Ring/WelcomeViewController.swift
rename to Ring/Ring/Walkthrough/WelcomeViewController.swift
diff --git a/Ring/RingTests/DaemonServiceTests.swift b/Ring/RingTests/DaemonServiceTests.swift
index a90c0c412..bf814c26a 100644
--- a/Ring/RingTests/DaemonServiceTests.swift
+++ b/Ring/RingTests/DaemonServiceTests.swift
@@ -19,6 +19,7 @@
  */
 
 import XCTest
+@testable import Ring
 
 /**
  A test class designed to validate that the daemon service runs as expected.
diff --git a/Ring/RingTests/ServiceEventTests.swift b/Ring/RingTests/ServiceEventTests.swift
index 8c525d1cd..6836c142e 100644
--- a/Ring/RingTests/ServiceEventTests.swift
+++ b/Ring/RingTests/ServiceEventTests.swift
@@ -19,6 +19,7 @@
  */
 
 import XCTest
+@testable import Ring
 
 /**
  A test class designed to validate that the ServiceEvent class is reacting properly.
-- 
GitLab