diff --git a/SyncbaseTodosApp/SyncbaseTodos.xcodeproj/project.pbxproj b/SyncbaseTodosApp/SyncbaseTodos.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..b68d568
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos.xcodeproj/project.pbxproj
@@ -0,0 +1,344 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		37B018C91CFF7A9D004B0A15 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018BB1CFF7A9D004B0A15 /* AppDelegate.swift */; };
+		37B018CA1CFF7A9D004B0A15 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 37B018BC1CFF7A9D004B0A15 /* Assets.xcassets */; };
+		37B018CB1CFF7A9D004B0A15 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 37B018BD1CFF7A9D004B0A15 /* LaunchScreen.storyboard */; };
+		37B018CC1CFF7A9D004B0A15 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 37B018BF1CFF7A9D004B0A15 /* Main.storyboard */; };
+		37B018CD1CFF7A9D004B0A15 /* CircularImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C11CFF7A9D004B0A15 /* CircularImageView.swift */; };
+		37B018CF1CFF7A9D004B0A15 /* MemberView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C31CFF7A9D004B0A15 /* MemberView.swift */; };
+		37B018D01CFF7A9D004B0A15 /* Person.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C41CFF7A9D004B0A15 /* Person.swift */; };
+		37B018D11CFF7A9D004B0A15 /* Task.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C51CFF7A9D004B0A15 /* Task.swift */; };
+		37B018D21CFF7A9D004B0A15 /* TasksViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C61CFF7A9D004B0A15 /* TasksViewController.swift */; };
+		37B018D31CFF7A9D004B0A15 /* TodoList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C71CFF7A9D004B0A15 /* TodoList.swift */; };
+		37B018D41CFF7A9D004B0A15 /* TodosViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C81CFF7A9D004B0A15 /* TodosViewController.swift */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+		378398671CF3ADB000C35566 /* SyncbaseTodos.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SyncbaseTodos.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		37B018BB1CFF7A9D004B0A15 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
+		37B018BC1CFF7A9D004B0A15 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		37B018BE1CFF7A9D004B0A15 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+		37B018C01CFF7A9D004B0A15 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		37B018C11CFF7A9D004B0A15 /* CircularImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CircularImageView.swift; sourceTree = "<group>"; };
+		37B018C21CFF7A9D004B0A15 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		37B018C31CFF7A9D004B0A15 /* MemberView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MemberView.swift; sourceTree = "<group>"; };
+		37B018C41CFF7A9D004B0A15 /* Person.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Person.swift; sourceTree = "<group>"; };
+		37B018C51CFF7A9D004B0A15 /* Task.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Task.swift; sourceTree = "<group>"; };
+		37B018C61CFF7A9D004B0A15 /* TasksViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TasksViewController.swift; sourceTree = "<group>"; };
+		37B018C71CFF7A9D004B0A15 /* TodoList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TodoList.swift; sourceTree = "<group>"; };
+		37B018C81CFF7A9D004B0A15 /* TodosViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TodosViewController.swift; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		378398641CF3ADB000C35566 /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		3783985E1CF3ADB000C35566 = {
+			isa = PBXGroup;
+			children = (
+				37B018BA1CFF7A9D004B0A15 /* SyncbaseTodos */,
+				378398681CF3ADB000C35566 /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		378398681CF3ADB000C35566 /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				378398671CF3ADB000C35566 /* SyncbaseTodos.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		37B018BA1CFF7A9D004B0A15 /* SyncbaseTodos */ = {
+			isa = PBXGroup;
+			children = (
+				37B018D71CFF7B5A004B0A15 /* Views */,
+				37B018D51CFF7B48004B0A15 /* Model */,
+				37B018D61CFF7B52004B0A15 /* Util */,
+				37B018BB1CFF7A9D004B0A15 /* AppDelegate.swift */,
+				37B018BC1CFF7A9D004B0A15 /* Assets.xcassets */,
+				37B018BD1CFF7A9D004B0A15 /* LaunchScreen.storyboard */,
+				37B018BF1CFF7A9D004B0A15 /* Main.storyboard */,
+				37B018C21CFF7A9D004B0A15 /* Info.plist */,
+			);
+			path = SyncbaseTodos;
+			sourceTree = "<group>";
+		};
+		37B018D51CFF7B48004B0A15 /* Model */ = {
+			isa = PBXGroup;
+			children = (
+				37B018C41CFF7A9D004B0A15 /* Person.swift */,
+				37B018C51CFF7A9D004B0A15 /* Task.swift */,
+				37B018C71CFF7A9D004B0A15 /* TodoList.swift */,
+			);
+			name = Model;
+			sourceTree = "<group>";
+		};
+		37B018D61CFF7B52004B0A15 /* Util */ = {
+			isa = PBXGroup;
+			children = (
+				37B018C11CFF7A9D004B0A15 /* CircularImageView.swift */,
+				37B018C31CFF7A9D004B0A15 /* MemberView.swift */,
+			);
+			name = Util;
+			sourceTree = "<group>";
+		};
+		37B018D71CFF7B5A004B0A15 /* Views */ = {
+			isa = PBXGroup;
+			children = (
+				37B018C61CFF7A9D004B0A15 /* TasksViewController.swift */,
+				37B018C81CFF7A9D004B0A15 /* TodosViewController.swift */,
+			);
+			name = Views;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		378398661CF3ADB000C35566 /* SyncbaseTodos */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 3783987B1CF3ADB000C35566 /* Build configuration list for PBXNativeTarget "SyncbaseTodos" */;
+			buildPhases = (
+				378398631CF3ADB000C35566 /* Sources */,
+				378398641CF3ADB000C35566 /* Frameworks */,
+				378398651CF3ADB000C35566 /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = SyncbaseTodos;
+			productName = VanadiumTodos;
+			productReference = 378398671CF3ADB000C35566 /* SyncbaseTodos.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		3783985F1CF3ADB000C35566 /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastSwiftUpdateCheck = 0730;
+				LastUpgradeCheck = 0730;
+				ORGANIZATIONNAME = Google;
+				TargetAttributes = {
+					378398661CF3ADB000C35566 = {
+						CreatedOnToolsVersion = 7.3.1;
+					};
+				};
+			};
+			buildConfigurationList = 378398621CF3ADB000C35566 /* Build configuration list for PBXProject "SyncbaseTodos" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 3783985E1CF3ADB000C35566;
+			productRefGroup = 378398681CF3ADB000C35566 /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				378398661CF3ADB000C35566 /* SyncbaseTodos */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		378398651CF3ADB000C35566 /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				37B018CC1CFF7A9D004B0A15 /* Main.storyboard in Resources */,
+				37B018CA1CFF7A9D004B0A15 /* Assets.xcassets in Resources */,
+				37B018CB1CFF7A9D004B0A15 /* LaunchScreen.storyboard in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		378398631CF3ADB000C35566 /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				37B018CF1CFF7A9D004B0A15 /* MemberView.swift in Sources */,
+				37B018D31CFF7A9D004B0A15 /* TodoList.swift in Sources */,
+				37B018C91CFF7A9D004B0A15 /* AppDelegate.swift in Sources */,
+				37B018D11CFF7A9D004B0A15 /* Task.swift in Sources */,
+				37B018D41CFF7A9D004B0A15 /* TodosViewController.swift in Sources */,
+				37B018D01CFF7A9D004B0A15 /* Person.swift in Sources */,
+				37B018CD1CFF7A9D004B0A15 /* CircularImageView.swift in Sources */,
+				37B018D21CFF7A9D004B0A15 /* TasksViewController.swift in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+		37B018BD1CFF7A9D004B0A15 /* LaunchScreen.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				37B018BE1CFF7A9D004B0A15 /* Base */,
+			);
+			name = LaunchScreen.storyboard;
+			sourceTree = "<group>";
+		};
+		37B018BF1CFF7A9D004B0A15 /* Main.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				37B018C01CFF7A9D004B0A15 /* Base */,
+			);
+			name = Main.storyboard;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		378398791CF3ADB000C35566 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = iphoneos;
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+			};
+			name = Debug;
+		};
+		3783987A1CF3ADB000C35566 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		3783987C1CF3ADB000C35566 /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				INFOPLIST_FILE = SyncbaseTodos/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = io.v.SyncbaseTodos;
+				PRODUCT_NAME = SyncbaseTodos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Debug;
+		};
+		3783987D1CF3ADB000C35566 /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				INFOPLIST_FILE = SyncbaseTodos/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				PRODUCT_BUNDLE_IDENTIFIER = io.v.SyncbaseTodos;
+				PRODUCT_NAME = SyncbaseTodos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		378398621CF3ADB000C35566 /* Build configuration list for PBXProject "SyncbaseTodos" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				378398791CF3ADB000C35566 /* Debug */,
+				3783987A1CF3ADB000C35566 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		3783987B1CF3ADB000C35566 /* Build configuration list for PBXNativeTarget "SyncbaseTodos" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				3783987C1CF3ADB000C35566 /* Debug */,
+				3783987D1CF3ADB000C35566 /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 3783985F1CF3ADB000C35566 /* Project object */;
+}
diff --git a/SyncbaseTodosApp/SyncbaseTodos.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SyncbaseTodosApp/SyncbaseTodos.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..61cb7de
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:/Users/greg/vanadium/release/swift/SyncbaseTodosApp/SyncbaseTodos.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/SyncbaseTodosApp/SyncbaseTodos/AppDelegate.swift b/SyncbaseTodosApp/SyncbaseTodos/AppDelegate.swift
new file mode 100644
index 0000000..60dceda
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/AppDelegate.swift
@@ -0,0 +1,39 @@
+// Copyright 2016 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+import UIKit
+
+@UIApplicationMain
+class AppDelegate: UIResponder, UIApplicationDelegate {
+  var window: UIWindow?
+
+  func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
+    // Override point for customization after application launch.
+    return true
+  }
+
+  func applicationWillResignActive(application: UIApplication) {
+    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
+  }
+
+  func applicationDidEnterBackground(application: UIApplication) {
+    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
+    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+  }
+
+  func applicationWillEnterForeground(application: UIApplication) {
+    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
+  }
+
+  func applicationDidBecomeActive(application: UIApplication) {
+    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+  }
+
+  func applicationWillTerminate(application: UIApplication) {
+    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
+  }
+
+}
+
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/AppIcon.appiconset/Contents.json b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..118c98f
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,38 @@
+{
+  "images" : [
+    {
+      "idiom" : "iphone",
+      "size" : "29x29",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "29x29",
+      "scale" : "3x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "40x40",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "40x40",
+      "scale" : "3x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "60x60",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "iphone",
+      "size" : "60x60",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/Contents.json b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/Contents.json
new file mode 100644
index 0000000..da4a164
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/Contents.json
@@ -0,0 +1,6 @@
+{
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOff.imageset/Contents.json b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOff.imageset/Contents.json
new file mode 100644
index 0000000..4cb3ec4
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOff.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "checkmarkOff.pdf"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOff.imageset/checkmarkOff.pdf b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOff.imageset/checkmarkOff.pdf
new file mode 100644
index 0000000..51e082f
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOff.imageset/checkmarkOff.pdf
Binary files differ
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOn.imageset/Contents.json b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOn.imageset/Contents.json
new file mode 100644
index 0000000..900de3b
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOn.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "checkmarkOn.pdf"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOn.imageset/checkmarkOn.pdf b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOn.imageset/checkmarkOn.pdf
new file mode 100644
index 0000000..f7539b0
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/checkmarkOn.imageset/checkmarkOn.pdf
Binary files differ
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/first.imageset/Contents.json b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/first.imageset/Contents.json
new file mode 100644
index 0000000..33a7451
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/first.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "first.pdf"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/first.imageset/first.pdf b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/first.imageset/first.pdf
new file mode 100644
index 0000000..47d911d
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/first.imageset/first.pdf
Binary files differ
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/profilePhoto.imageset/Contents.json b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/profilePhoto.imageset/Contents.json
new file mode 100644
index 0000000..d7d9e61
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/profilePhoto.imageset/Contents.json
@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "profilePhoto.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/profilePhoto.imageset/profilePhoto.png b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/profilePhoto.imageset/profilePhoto.png
new file mode 100644
index 0000000..d68d016
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/profilePhoto.imageset/profilePhoto.png
Binary files differ
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/second.imageset/Contents.json b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/second.imageset/Contents.json
new file mode 100644
index 0000000..03bd9c9
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/second.imageset/Contents.json
@@ -0,0 +1,12 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "second.pdf"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/second.imageset/second.pdf b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/second.imageset/second.pdf
new file mode 100644
index 0000000..401614e
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Assets.xcassets/second.imageset/second.pdf
Binary files differ
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Base.lproj/LaunchScreen.storyboard b/SyncbaseTodosApp/SyncbaseTodos/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 0000000..ebf48f6
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="EHf-IW-A2E">
+            <objects>
+                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
+                        <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="53" y="375"/>
+        </scene>
+    </scenes>
+</document>
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Base.lproj/Main.storyboard b/SyncbaseTodosApp/SyncbaseTodos/Base.lproj/Main.storyboard
new file mode 100644
index 0000000..96dfd54
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Base.lproj/Main.storyboard
@@ -0,0 +1,436 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="lgM-CP-S68">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
+        <capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
+        <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
+        <capability name="Navigation items with more than one left or right bar item" minToolsVersion="7.0"/>
+    </dependencies>
+    <scenes>
+        <!--Navigation Controller-->
+        <scene sceneID="M75-wf-cHn">
+            <objects>
+                <navigationController id="lgM-CP-S68" sceneMemberID="viewController">
+                    <navigationBar key="navigationBar" contentMode="scaleToFill" barStyle="black" id="agF-45-9ja">
+                        <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
+                        <autoresizingMask key="autoresizingMask"/>
+                        <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <color key="barTintColor" red="0.24705882352941178" green="0.31764705882352939" blue="0.70980392156862748" alpha="1" colorSpace="calibratedRGB"/>
+                        <textAttributes key="titleTextAttributes">
+                            <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        </textAttributes>
+                    </navigationBar>
+                    <connections>
+                        <segue destination="4Az-YS-hA9" kind="relationship" relationship="rootViewController" id="xZh-UE-xd0"/>
+                    </connections>
+                </navigationController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="eLp-6o-mdc" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-497" y="351"/>
+        </scene>
+        <!--Todos List-->
+        <scene sceneID="yTN-IQ-Jkd">
+            <objects>
+                <viewController id="4Az-YS-hA9" userLabel="Todos List" customClass="TodosViewController" customModule="SyncbaseTodos" customModuleProvider="target" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="q0d-J2-riN"/>
+                        <viewControllerLayoutGuide type="bottom" id="qae-Cf-9sB"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="Mrj-cW-Dnp">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="100" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="kmv-xQ-8U6">
+                                <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" showsReorderControl="YES" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="todoListCellId" rowHeight="100" id="8dL-DR-u0l" customClass="TodoListCell" customModule="SyncbaseTodos" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="92" width="600" height="100"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8dL-DR-u0l" id="wu7-ys-FZ4">
+                                            <rect key="frame" x="0.0" y="0.0" width="600" height="99.5"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Noogler Training" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6kP-9G-mon">
+                                                    <rect key="frame" x="18" y="18" width="538" height="18"/>
+                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="A8B-Z7-aK9" userLabel="Member view" customClass="MemberView" customModule="SyncbaseTodos" customModuleProvider="target">
+                                                    <rect key="frame" x="18" y="42" width="574" height="17"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="10" id="DRA-CK-dHU"/>
+                                                    </constraints>
+                                                </view>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="3/4 Completed" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="DnN-q1-yUb">
+                                                    <rect key="frame" x="18" y="64.5" width="574" height="17"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="750" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="4 hr" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="moK-vs-xyD">
+                                                    <rect key="frame" x="555.5" y="18" width="26.5" height="17"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                                    <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="DnN-q1-yUb" firstAttribute="leading" secondItem="wu7-ys-FZ4" secondAttribute="leadingMargin" id="3G6-Eq-ULw"/>
+                                                <constraint firstItem="DnN-q1-yUb" firstAttribute="top" secondItem="A8B-Z7-aK9" secondAttribute="bottom" constant="6" id="7GS-az-c6Z"/>
+                                                <constraint firstItem="A8B-Z7-aK9" firstAttribute="top" secondItem="6kP-9G-mon" secondAttribute="bottom" constant="6" id="8x1-XI-uWL"/>
+                                                <constraint firstItem="6kP-9G-mon" firstAttribute="leading" secondItem="wu7-ys-FZ4" secondAttribute="leadingMargin" constant="10" id="AZB-TV-Lxr"/>
+                                                <constraint firstItem="moK-vs-xyD" firstAttribute="leading" secondItem="6kP-9G-mon" secondAttribute="trailing" id="It9-Id-w83"/>
+                                                <constraint firstItem="A8B-Z7-aK9" firstAttribute="leading" secondItem="wu7-ys-FZ4" secondAttribute="leadingMargin" id="LcB-CM-XBI"/>
+                                                <constraint firstAttribute="trailingMargin" secondItem="moK-vs-xyD" secondAttribute="trailing" constant="10" id="QSm-du-2fp"/>
+                                                <constraint firstItem="moK-vs-xyD" firstAttribute="top" secondItem="wu7-ys-FZ4" secondAttribute="topMargin" id="SdS-sh-Ucv"/>
+                                                <constraint firstAttribute="trailingMargin" secondItem="A8B-Z7-aK9" secondAttribute="trailing" id="cIi-no-29c"/>
+                                                <constraint firstAttribute="bottomMargin" secondItem="DnN-q1-yUb" secondAttribute="bottom" constant="10" id="fYg-G6-Bsu"/>
+                                                <constraint firstItem="moK-vs-xyD" firstAttribute="top" secondItem="6kP-9G-mon" secondAttribute="top" id="kLR-N1-JTb"/>
+                                                <constraint firstAttribute="trailingMargin" secondItem="DnN-q1-yUb" secondAttribute="trailing" id="nIj-8t-6my"/>
+                                                <constraint firstItem="A8B-Z7-aK9" firstAttribute="leading" secondItem="6kP-9G-mon" secondAttribute="leading" id="tsP-KE-2f1"/>
+                                                <constraint firstItem="DnN-q1-yUb" firstAttribute="leading" secondItem="6kP-9G-mon" secondAttribute="leading" id="vr8-cs-Ugq"/>
+                                                <constraint firstItem="6kP-9G-mon" firstAttribute="top" secondItem="wu7-ys-FZ4" secondAttribute="topMargin" constant="10" id="xDU-VA-Yp6"/>
+                                            </constraints>
+                                            <variation key="default">
+                                                <mask key="constraints">
+                                                    <exclude reference="LcB-CM-XBI"/>
+                                                    <exclude reference="3G6-Eq-ULw"/>
+                                                    <exclude reference="SdS-sh-Ucv"/>
+                                                </mask>
+                                            </variation>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="completedLabel" destination="DnN-q1-yUb" id="1Wz-9g-qDU"/>
+                                            <outlet property="lastModifiedLabel" destination="moK-vs-xyD" id="c3U-BU-Okb"/>
+                                            <outlet property="memberView" destination="A8B-Z7-aK9" id="jnR-lg-JfF"/>
+                                            <outlet property="titleLabel" destination="6kP-9G-mon" id="neN-r8-bph"/>
+                                            <segue destination="9RW-nK-7je" kind="show" id="Pgo-YR-BRR"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                                <connections>
+                                    <outlet property="dataSource" destination="4Az-YS-hA9" id="77W-sN-E0l"/>
+                                    <outlet property="delegate" destination="4Az-YS-hA9" id="J7R-bP-69J"/>
+                                </connections>
+                            </tableView>
+                            <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="pgB-6n-kxg">
+                                <rect key="frame" x="0.0" y="556" width="600" height="44"/>
+                                <items>
+                                    <barButtonItem style="plain" systemItem="flexibleSpace" id="mcV-tk-4Sq"/>
+                                    <barButtonItem title="Turn sharing off" id="rb7-ge-A8E">
+                                        <connections>
+                                            <action selector="toggleSharing" destination="4Az-YS-hA9" id="1mE-0C-WPJ"/>
+                                        </connections>
+                                    </barButtonItem>
+                                    <barButtonItem style="plain" systemItem="flexibleSpace" id="tGB-vG-wwH"/>
+                                    <barButtonItem title="Debug" id="M4k-N2-NVt">
+                                        <connections>
+                                            <action selector="debug" destination="4Az-YS-hA9" id="zFH-Wp-hcs"/>
+                                        </connections>
+                                    </barButtonItem>
+                                    <barButtonItem style="plain" systemItem="flexibleSpace" id="fCt-vQ-eNa"/>
+                                </items>
+                            </toolbar>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                        <constraints>
+                            <constraint firstItem="qae-Cf-9sB" firstAttribute="top" secondItem="kmv-xQ-8U6" secondAttribute="bottom" id="576-pE-MoT"/>
+                            <constraint firstAttribute="trailing" secondItem="kmv-xQ-8U6" secondAttribute="trailing" id="Lq5-Md-abd"/>
+                            <constraint firstAttribute="bottomMargin" secondItem="pgB-6n-kxg" secondAttribute="bottom" id="Tte-CX-3hG"/>
+                            <constraint firstAttribute="trailing" secondItem="pgB-6n-kxg" secondAttribute="trailing" id="d6V-Gx-v2L"/>
+                            <constraint firstItem="pgB-6n-kxg" firstAttribute="leading" secondItem="Mrj-cW-Dnp" secondAttribute="leading" id="dmW-R1-jes"/>
+                            <constraint firstItem="kmv-xQ-8U6" firstAttribute="top" secondItem="q0d-J2-riN" secondAttribute="bottom" id="fnB-rv-qV8"/>
+                            <constraint firstItem="kmv-xQ-8U6" firstAttribute="leading" secondItem="Mrj-cW-Dnp" secondAttribute="leading" id="gIV-Nh-9kO"/>
+                            <constraint firstItem="kmv-xQ-8U6" firstAttribute="top" secondItem="Mrj-cW-Dnp" secondAttribute="top" id="v3N-nY-hfv"/>
+                        </constraints>
+                        <variation key="default">
+                            <mask key="constraints">
+                                <exclude reference="fnB-rv-qV8"/>
+                            </mask>
+                        </variation>
+                    </view>
+                    <navigationItem key="navigationItem" title="Todos" id="nTo-I7-khB">
+                        <barButtonItem key="leftBarButtonItem" title="Edit" id="UQI-hu-noU">
+                            <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                            <connections>
+                                <action selector="toggleEdit" destination="4Az-YS-hA9" id="q9G-Kf-duz"/>
+                            </connections>
+                        </barButtonItem>
+                        <barButtonItem key="rightBarButtonItem" systemItem="add" id="mjQ-zJ-bqJ">
+                            <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                        </barButtonItem>
+                    </navigationItem>
+                    <connections>
+                        <outlet property="addButton" destination="mjQ-zJ-bqJ" id="u0I-g6-i6c"/>
+                        <outlet property="menuToolbar" destination="pgB-6n-kxg" id="t4H-IG-sSd"/>
+                        <outlet property="menuToolbarTopConstraint" destination="Tte-CX-3hG" id="TUD-bG-KpB"/>
+                        <outlet property="tableView" destination="kmv-xQ-8U6" id="88K-fx-Dzp"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="jFT-NN-2Df" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="238" y="351"/>
+        </scene>
+        <!--Tasks List-->
+        <scene sceneID="Ocz-4V-V7Q">
+            <objects>
+                <viewController id="9RW-nK-7je" userLabel="Tasks List" customClass="TasksViewController" customModule="SyncbaseTodos" customModuleProvider="target" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="8GI-IJ-A9Q"/>
+                        <viewControllerLayoutGuide type="bottom" id="dBT-lk-hHr"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="GVW-Fz-eZw">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="zm5-DN-A3G">
+                                <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                <prototypes>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" showsReorderControl="YES" indentationWidth="10" reuseIdentifier="inviteCellId" rowHeight="90" id="sP1-qZ-70O" customClass="InviteCell" customModule="SyncbaseTodos" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="92" width="600" height="90"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="sP1-qZ-70O" id="rFC-eu-QuV">
+                                            <rect key="frame" x="0.0" y="0.0" width="600" height="89.5"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Members" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OkN-Ra-ErJ">
+                                                    <rect key="frame" x="18" y="18" width="483" height="14.5"/>
+                                                    <fontDescription key="fontDescription" type="system" weight="medium" pointSize="12"/>
+                                                    <color key="textColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="IE6-bL-LAv" customClass="MemberView" customModule="SyncbaseTodos" customModuleProvider="target">
+                                                    <rect key="frame" x="18" y="37.5" width="483" height="34"/>
+                                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                                </view>
+                                                <button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="DPM-My-QB0">
+                                                    <rect key="frame" x="501" y="26" width="81" height="38"/>
+                                                    <color key="backgroundColor" red="0.23529411764705882" green="0.27450980392156865" blue="0.6705882352941176" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                                    <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <inset key="contentEdgeInsets" minX="20" minY="10" maxX="20" maxY="10"/>
+                                                    <state key="normal" title="Invite"/>
+                                                    <connections>
+                                                        <segue destination="TEb-eN-UhB" kind="show" id="qrj-jG-MGo"/>
+                                                    </connections>
+                                                </button>
+                                            </subviews>
+                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                            <constraints>
+                                                <constraint firstItem="DPM-My-QB0" firstAttribute="leading" secondItem="IE6-bL-LAv" secondAttribute="trailing" id="BGg-4N-qt0"/>
+                                                <constraint firstItem="DPM-My-QB0" firstAttribute="top" secondItem="rFC-eu-QuV" secondAttribute="topMargin" id="CUs-rY-8kw"/>
+                                                <constraint firstAttribute="bottomMargin" secondItem="DPM-My-QB0" secondAttribute="bottom" id="D1W-EC-IOT"/>
+                                                <constraint firstItem="DPM-My-QB0" firstAttribute="leading" secondItem="OkN-Ra-ErJ" secondAttribute="trailing" id="DWx-Fy-b5y"/>
+                                                <constraint firstItem="OkN-Ra-ErJ" firstAttribute="top" secondItem="rFC-eu-QuV" secondAttribute="topMargin" constant="10" id="UFg-83-zMb"/>
+                                                <constraint firstAttribute="bottomMargin" secondItem="IE6-bL-LAv" secondAttribute="bottom" constant="10" id="VuH-rK-4LG"/>
+                                                <constraint firstItem="IE6-bL-LAv" firstAttribute="leading" secondItem="OkN-Ra-ErJ" secondAttribute="leading" id="XLK-67-hSZ"/>
+                                                <constraint firstItem="IE6-bL-LAv" firstAttribute="top" secondItem="OkN-Ra-ErJ" secondAttribute="bottom" constant="5" id="bfl-kg-s9c"/>
+                                                <constraint firstAttribute="trailingMargin" secondItem="DPM-My-QB0" secondAttribute="trailing" constant="10" id="o6W-el-h3i"/>
+                                                <constraint firstItem="IE6-bL-LAv" firstAttribute="top" secondItem="rFC-eu-QuV" secondAttribute="topMargin" id="peQ-6j-9EB"/>
+                                                <constraint firstItem="IE6-bL-LAv" firstAttribute="leading" secondItem="rFC-eu-QuV" secondAttribute="leadingMargin" id="qZ3-W0-sIH"/>
+                                                <constraint firstItem="DPM-My-QB0" firstAttribute="centerY" secondItem="rFC-eu-QuV" secondAttribute="centerY" id="s6D-ub-hDn"/>
+                                                <constraint firstItem="OkN-Ra-ErJ" firstAttribute="leading" secondItem="rFC-eu-QuV" secondAttribute="leadingMargin" constant="10" id="yII-iS-tVN"/>
+                                            </constraints>
+                                            <variation key="default">
+                                                <mask key="constraints">
+                                                    <exclude reference="peQ-6j-9EB"/>
+                                                    <exclude reference="qZ3-W0-sIH"/>
+                                                    <exclude reference="CUs-rY-8kw"/>
+                                                    <exclude reference="D1W-EC-IOT"/>
+                                                </mask>
+                                            </variation>
+                                        </tableViewCellContentView>
+                                        <color key="backgroundColor" red="0.90980392156862744" green="0.91764705882352937" blue="0.96470588235294119" alpha="1" colorSpace="calibratedRGB"/>
+                                        <connections>
+                                            <outlet property="memberView" destination="IE6-bL-LAv" id="xAr-8c-t1e"/>
+                                        </connections>
+                                    </tableViewCell>
+                                    <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" showsReorderControl="YES" indentationWidth="10" reuseIdentifier="taskCellId" rowHeight="50" id="3XL-e6-zxp" customClass="TaskCell" customModule="SyncbaseTodos" customModuleProvider="target">
+                                        <rect key="frame" x="0.0" y="182" width="600" height="50"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                        <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="3XL-e6-zxp" id="Wf9-qw-m7r">
+                                            <rect key="frame" x="0.0" y="0.0" width="600" height="49.5"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <subviews>
+                                                <button opaque="NO" contentMode="center" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vAH-iE-I9L">
+                                                    <rect key="frame" x="8" y="8" width="33.5" height="33.5"/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" secondItem="vAH-iE-I9L" secondAttribute="height" multiplier="1:1" id="WyE-Vk-eJK"/>
+                                                    </constraints>
+                                                    <state key="normal" image="checkmarkOff"/>
+                                                    <connections>
+                                                        <action selector="toggleComplete" destination="3XL-e6-zxp" eventType="touchUpInside" id="ShA-fQ-Ywv"/>
+                                                    </connections>
+                                                </button>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Retrieve noogler hat" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IFI-3u-8gC">
+                                                    <rect key="frame" x="41" y="8" width="525.5" height="33.5"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="13"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="750" verticalHuggingPriority="251" text="Now" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c6S-My-HeD">
+                                                    <rect key="frame" x="566" y="8" width="25.5" height="33.5"/>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="12"/>
+                                                    <color key="textColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
+                                                    <nil key="highlightedColor"/>
+                                                </label>
+                                            </subviews>
+                                            <constraints>
+                                                <constraint firstItem="c6S-My-HeD" firstAttribute="top" secondItem="Wf9-qw-m7r" secondAttribute="topMargin" id="1Jl-f7-1iW"/>
+                                                <constraint firstAttribute="bottomMargin" secondItem="IFI-3u-8gC" secondAttribute="bottom" id="9zr-v2-RlD"/>
+                                                <constraint firstAttribute="trailingMargin" secondItem="c6S-My-HeD" secondAttribute="trailing" id="HOc-ir-M1j"/>
+                                                <constraint firstAttribute="bottomMargin" secondItem="vAH-iE-I9L" secondAttribute="bottom" id="Lvh-Dd-IxI"/>
+                                                <constraint firstItem="c6S-My-HeD" firstAttribute="leading" secondItem="vAH-iE-I9L" secondAttribute="trailing" constant="20" id="ddO-Ua-Ecs"/>
+                                                <constraint firstItem="vAH-iE-I9L" firstAttribute="leading" secondItem="Wf9-qw-m7r" secondAttribute="leadingMargin" id="dpr-x4-9aG"/>
+                                                <constraint firstItem="c6S-My-HeD" firstAttribute="leading" secondItem="IFI-3u-8gC" secondAttribute="trailing" id="gcN-1V-TLj"/>
+                                                <constraint firstItem="vAH-iE-I9L" firstAttribute="top" secondItem="Wf9-qw-m7r" secondAttribute="topMargin" id="hdr-5d-smp"/>
+                                                <constraint firstItem="IFI-3u-8gC" firstAttribute="top" secondItem="Wf9-qw-m7r" secondAttribute="topMargin" id="ivP-3Q-y4N"/>
+                                                <constraint firstItem="IFI-3u-8gC" firstAttribute="leading" secondItem="vAH-iE-I9L" secondAttribute="trailing" id="lWK-6c-RWe"/>
+                                                <constraint firstAttribute="bottomMargin" secondItem="c6S-My-HeD" secondAttribute="bottom" id="lu0-xD-nkb"/>
+                                            </constraints>
+                                            <variation key="default">
+                                                <mask key="constraints">
+                                                    <exclude reference="ddO-Ua-Ecs"/>
+                                                </mask>
+                                            </variation>
+                                        </tableViewCellContentView>
+                                        <connections>
+                                            <outlet property="addedAtLabel" destination="c6S-My-HeD" id="ec8-GM-il0"/>
+                                            <outlet property="completeButton" destination="vAH-iE-I9L" id="s7s-hz-Sha"/>
+                                            <outlet property="taskNameLabel" destination="IFI-3u-8gC" id="tEr-tU-ClC"/>
+                                        </connections>
+                                    </tableViewCell>
+                                </prototypes>
+                                <connections>
+                                    <outlet property="dataSource" destination="9RW-nK-7je" id="za8-yM-r7v"/>
+                                    <outlet property="delegate" destination="9RW-nK-7je" id="THV-w6-OdV"/>
+                                </connections>
+                            </tableView>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                        <constraints>
+                            <constraint firstItem="zm5-DN-A3G" firstAttribute="leading" secondItem="GVW-Fz-eZw" secondAttribute="leading" id="QtB-Qm-oAW"/>
+                            <constraint firstAttribute="trailingMargin" secondItem="zm5-DN-A3G" secondAttribute="trailing" id="Uwo-pw-Oco"/>
+                            <constraint firstItem="zm5-DN-A3G" firstAttribute="leading" secondItem="GVW-Fz-eZw" secondAttribute="leadingMargin" id="eUE-XP-Cj7"/>
+                            <constraint firstItem="zm5-DN-A3G" firstAttribute="top" secondItem="8GI-IJ-A9Q" secondAttribute="bottom" id="gQY-U6-Rx4"/>
+                            <constraint firstItem="zm5-DN-A3G" firstAttribute="top" secondItem="8GI-IJ-A9Q" secondAttribute="bottom" id="hdH-oT-gOP"/>
+                            <constraint firstAttribute="trailing" secondItem="zm5-DN-A3G" secondAttribute="trailing" id="iCq-Qg-Pw0"/>
+                            <constraint firstItem="dBT-lk-hHr" firstAttribute="top" secondItem="zm5-DN-A3G" secondAttribute="bottom" id="nZk-eg-Wzc"/>
+                            <constraint firstItem="zm5-DN-A3G" firstAttribute="top" secondItem="GVW-Fz-eZw" secondAttribute="topMargin" id="p0q-0l-rBv"/>
+                            <constraint firstItem="dBT-lk-hHr" firstAttribute="top" secondItem="zm5-DN-A3G" secondAttribute="bottom" id="udE-Hf-IFh"/>
+                        </constraints>
+                        <variation key="default">
+                            <mask key="constraints">
+                                <exclude reference="Uwo-pw-Oco"/>
+                                <exclude reference="eUE-XP-Cj7"/>
+                                <exclude reference="gQY-U6-Rx4"/>
+                                <exclude reference="hdH-oT-gOP"/>
+                                <exclude reference="nZk-eg-Wzc"/>
+                            </mask>
+                        </variation>
+                    </view>
+                    <navigationItem key="navigationItem" title="Todo list name" id="hx1-tC-Sx2">
+                        <rightBarButtonItems>
+                            <barButtonItem title="Edit" id="FCP-7w-M8t">
+                                <color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                                <connections>
+                                    <action selector="toggleEdit" destination="9RW-nK-7je" id="kKH-FC-IkC"/>
+                                </connections>
+                            </barButtonItem>
+                            <barButtonItem systemItem="add" id="8Nh-mJ-31a">
+                                <connections>
+                                    <action selector="showAddTask" destination="9RW-nK-7je" id="bhX-7S-tGj"/>
+                                </connections>
+                            </barButtonItem>
+                        </rightBarButtonItems>
+                    </navigationItem>
+                    <connections>
+                        <outlet property="addButton" destination="8Nh-mJ-31a" id="4am-GF-QhO"/>
+                        <outlet property="tableView" destination="zm5-DN-A3G" id="8B7-bm-AmP"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="R5Y-Rx-VO1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="944" y="351"/>
+        </scene>
+        <!--Invite-->
+        <scene sceneID="KB2-7v-cHC">
+            <objects>
+                <tableViewController id="TEb-eN-UhB" sceneMemberID="viewController">
+                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="59" sectionHeaderHeight="28" sectionFooterHeight="28" id="p4P-W4-gFc">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                        <searchBar key="tableHeaderView" contentMode="redraw" placeholder="Type a name or email" id="Rtg-Zz-0OI">
+                            <rect key="frame" x="0.0" y="64" width="600" height="44"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                            <textInputTraits key="textInputTraits"/>
+                            <connections>
+                                <outlet property="delegate" destination="TEb-eN-UhB" id="I6F-p8-ewS"/>
+                            </connections>
+                        </searchBar>
+                        <prototypes>
+                            <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="InviteCell" rowHeight="59" id="SrI-gO-iqH">
+                                <rect key="frame" x="0.0" y="136" width="600" height="59"/>
+                                <autoresizingMask key="autoresizingMask"/>
+                                <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="SrI-gO-iqH" id="07a-cu-tgk">
+                                    <rect key="frame" x="0.0" y="0.0" width="600" height="58.5"/>
+                                    <autoresizingMask key="autoresizingMask"/>
+                                    <subviews>
+                                        <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="profilePhoto" translatesAutoresizingMaskIntoConstraints="NO" id="ZNe-Xc-Gii" customClass="CircularImageView" customModule="SyncbaseTodos" customModuleProvider="target">
+                                            <rect key="frame" x="18" y="8" width="42.5" height="42.5"/>
+                                            <constraints>
+                                                <constraint firstAttribute="width" secondItem="ZNe-Xc-Gii" secondAttribute="height" multiplier="1:1" id="X6H-qC-G5F"/>
+                                            </constraints>
+                                        </imageView>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="A person" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xw3-gj-ST1">
+                                            <rect key="frame" x="70.5" y="8" width="521.5" height="42.5"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                            <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstItem="Xw3-gj-ST1" firstAttribute="leading" secondItem="ZNe-Xc-Gii" secondAttribute="trailing" constant="10" id="5sy-T3-58g"/>
+                                        <constraint firstItem="ZNe-Xc-Gii" firstAttribute="top" secondItem="07a-cu-tgk" secondAttribute="topMargin" id="60n-Wl-qqy"/>
+                                        <constraint firstItem="Xw3-gj-ST1" firstAttribute="top" secondItem="07a-cu-tgk" secondAttribute="topMargin" id="Gn4-CV-9rE"/>
+                                        <constraint firstAttribute="bottomMargin" secondItem="ZNe-Xc-Gii" secondAttribute="bottom" id="TT7-Ae-akW"/>
+                                        <constraint firstAttribute="bottomMargin" secondItem="Xw3-gj-ST1" secondAttribute="bottom" id="X3K-9W-Xr0"/>
+                                        <constraint firstAttribute="trailingMargin" secondItem="Xw3-gj-ST1" secondAttribute="trailing" id="bQu-ls-rnE"/>
+                                        <constraint firstItem="ZNe-Xc-Gii" firstAttribute="leading" secondItem="07a-cu-tgk" secondAttribute="leadingMargin" constant="10" id="z5g-zm-qTP"/>
+                                    </constraints>
+                                </tableViewCellContentView>
+                            </tableViewCell>
+                        </prototypes>
+                        <connections>
+                            <outlet property="dataSource" destination="TEb-eN-UhB" id="dr8-iN-qdD"/>
+                            <outlet property="delegate" destination="TEb-eN-UhB" id="e4k-7Z-bu0"/>
+                        </connections>
+                    </tableView>
+                    <navigationItem key="navigationItem" title="Invite" id="NZy-bp-bmE"/>
+                    <connections>
+                        <outlet property="searchDisplayController" destination="ebz-LZ-GvJ" id="0pO-1l-HSg"/>
+                    </connections>
+                </tableViewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="zpc-eh-b9l" userLabel="First Responder" sceneMemberID="firstResponder"/>
+                <searchDisplayController id="ebz-LZ-GvJ">
+                    <connections>
+                        <outlet property="delegate" destination="TEb-eN-UhB" id="xqO-82-EL1"/>
+                        <outlet property="searchBar" destination="Rtg-Zz-0OI" id="7RO-9h-ful"/>
+                        <outlet property="searchContentsController" destination="TEb-eN-UhB" id="7jw-J1-3At"/>
+                        <outlet property="searchResultsDataSource" destination="TEb-eN-UhB" id="zcQ-HT-i4f"/>
+                        <outlet property="searchResultsDelegate" destination="TEb-eN-UhB" id="Aex-vt-QTN"/>
+                    </connections>
+                </searchDisplayController>
+            </objects>
+            <point key="canvasLocation" x="1646" y="356"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="checkmarkOff" width="24" height="24"/>
+        <image name="profilePhoto" width="88" height="88"/>
+    </resources>
+</document>
diff --git a/SyncbaseTodosApp/SyncbaseTodos/CircularImageView.swift b/SyncbaseTodosApp/SyncbaseTodos/CircularImageView.swift
new file mode 100644
index 0000000..8ac97b3
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/CircularImageView.swift
@@ -0,0 +1,27 @@
+// Copyright 2016 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+import Foundation
+import UIKit
+
+@IBDesignable class CircularImageView: UIImageView {
+  var borderColor: UIColor = UIColor.darkGrayColor()
+
+  override func prepareForInterfaceBuilder() {
+    setup()
+  }
+
+  override func layoutSubviews() {
+    super.layoutSubviews()
+    // First point where autolayout frames have finished computation
+    setup()
+  }
+
+  func setup() {
+    layer.cornerRadius = frame.size.width * 0.5
+    layer.borderWidth = 1
+    layer.borderColor = borderColor.CGColor
+  }
+
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Info.plist b/SyncbaseTodosApp/SyncbaseTodos/Info.plist
new file mode 100644
index 0000000..9184723
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Info.plist
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>$(PRODUCT_NAME)</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UILaunchStoryboardName</key>
+	<string>LaunchScreen</string>
+	<key>UIMainStoryboardFile</key>
+	<string>Main</string>
+	<key>UIRequiredDeviceCapabilities</key>
+	<array>
+		<string>armv7</string>
+	</array>
+	<key>UIStatusBarStyle</key>
+	<string>UIStatusBarStyleDefault</string>
+	<key>UIStatusBarTintParameters</key>
+	<dict>
+		<key>UINavigationBar</key>
+		<dict>
+			<key>Style</key>
+			<string>UIBarStyleDefault</string>
+			<key>Translucent</key>
+			<false/>
+		</dict>
+	</dict>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>
diff --git a/SyncbaseTodosApp/SyncbaseTodos/MemberView.swift b/SyncbaseTodosApp/SyncbaseTodos/MemberView.swift
new file mode 100644
index 0000000..8142b86
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/MemberView.swift
@@ -0,0 +1,44 @@
+// Copyright 2016 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+import Foundation
+import UIKit
+
+class MemberView: UIView {
+  var todoList: TodoList?
+
+  func updateView() {
+    // Remove all previous photos
+    for view in subviews {
+      view.removeFromSuperview()
+    }
+    if let list = todoList {
+      var x: CGFloat = 0
+      // Create and add a photo circle for all members
+      for member in list.members {
+        let profilePhoto = imageFactory(member.imageName, offset: x)
+        insertSubview(profilePhoto, atIndex: 0)
+        x += profilePhoto.frame.size.width - profilePhoto.frame.size.width * 0.25
+      }
+    }
+  }
+
+  func imageFactory(imageName: String, offset: CGFloat) -> UIImageView {
+    let imageView = CircularImageView(image: UIImage(named: imageName))
+    var frame = imageView.frame
+    frame.size = CGSizeMake(self.frame.size.height, self.frame.size.height)
+    frame.origin.x = offset
+    imageView.frame = frame
+    return imageView
+  }
+
+  override func layoutSubviews() {
+    // Layout subviews is called often and possibly after creation (and auto layout adjustments),
+    // so we need to adjust our view sizes to match
+    let height = frame.size.height
+    for view in subviews {
+      view.frame.size = CGSizeMake(height, height)
+    }
+  }
+}
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Person.swift b/SyncbaseTodosApp/SyncbaseTodos/Person.swift
new file mode 100644
index 0000000..cc2dc98
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Person.swift
@@ -0,0 +1,17 @@
+// Copyright 2016 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+import Foundation
+
+// All of this is trash to be replaced by syncbase model
+class Person {
+  var name: String = ""
+  var imageName: String = ""
+
+  convenience init(name: String, imageName: String) {
+    self.init()
+    self.name = name
+    self.imageName = imageName
+  }
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/Task.swift b/SyncbaseTodosApp/SyncbaseTodos/Task.swift
new file mode 100644
index 0000000..fc5f1c5
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/Task.swift
@@ -0,0 +1,23 @@
+// Copyright 2016 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+import Foundation
+
+// All of this is trash to be replaced by syncbase model
+class Task {
+  var text: String = ""
+  var addedAt: NSDate = NSDate()
+  var done: Bool = false
+
+  convenience init(text: String) {
+    self.init()
+    self.text = text
+  }
+
+  convenience init(text: String, done: Bool) {
+    self.init()
+    self.text = text
+    self.done = done
+  }
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/TasksViewController.swift b/SyncbaseTodosApp/SyncbaseTodos/TasksViewController.swift
new file mode 100644
index 0000000..c9eb779
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/TasksViewController.swift
@@ -0,0 +1,174 @@
+// Copyright 2016 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+import UIKit
+
+enum Section: Int {
+  case Invite
+  case Tasks
+}
+
+class TasksViewController: UIViewController {
+  let inviteCellId = "inviteCellId"
+  let taskCellId = "taskCellId"
+  @IBOutlet weak var tableView: UITableView!
+  @IBOutlet weak var addButton: UIBarButtonItem!
+  var todoList = TodoList() // Set by segue from TodosViewController
+  static let dateFormatter: NSDateFormatter = {
+    let dateFormatter = NSDateFormatter()
+    dateFormatter.dateFormat = "MMM d"
+    return dateFormatter
+  }()
+
+  override func viewDidLoad() {
+    super.viewDidLoad()
+    title = todoList.name
+    tableView.reloadData()
+  }
+}
+
+/*
+ * Handles tableview functionality, including rendering and swipe actions. Tap actions are
+ * handled directly in Main.storyboard using segues
+ */
+extension TasksViewController: UITableViewDataSource, UITableViewDelegate {
+  func numberOfSectionsInTableView(tableView: UITableView) -> Int {
+    return 2
+  }
+
+  func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+    if section == Section.Invite.rawValue {
+      return 1
+    } else {
+      return todoList.tasks.count
+    }
+  }
+
+  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
+    // These cells are prototypes inside the Main.storyboard. Cannot fail.
+    if indexPath.section == Section.Invite.rawValue {
+      let cell = tableView.dequeueReusableCellWithIdentifier(inviteCellId, forIndexPath: indexPath) as! InviteCell
+      cell.todoList = todoList
+      cell.updateView()
+      return cell
+    } else {
+      let cell = tableView.dequeueReusableCellWithIdentifier(taskCellId, forIndexPath: indexPath) as! TaskCell
+      cell.task = todoList.tasks[indexPath.row]
+      cell.updateView()
+      return cell
+    }
+  }
+
+  func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
+    if editingStyle == .Delete {
+      self.deleteTask(indexPath)
+    }
+  }
+
+  func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
+    if indexPath.section == Section.Invite.rawValue {
+      return 90
+    } else {
+      return 60
+    }
+  }
+}
+
+/*
+ * IBActions and data modification functions
+ */
+extension TasksViewController {
+  @IBAction func toggleEdit() {
+    // Do this manually because we're a UIViewController not a UITableViewController, so we don't
+    // get editing behavior for free
+    if tableView.editing {
+      tableView.setEditing(false, animated: true)
+      navigationItem.rightBarButtonItem?.title = "Edit"
+      addButton.enabled = true
+    } else {
+      tableView.setEditing(true, animated: true)
+      navigationItem.rightBarButtonItem?.title = "Done"
+      addButton.enabled = false
+    }
+
+    UIView.animateWithDuration(0.35) { self.view.layoutIfNeeded() }
+  }
+
+  @IBAction func showAddTask() {
+    let alert = UIAlertController(title: "Add task", message: nil, preferredStyle: .Alert)
+    alert.addTextFieldWithConfigurationHandler { (textField) in }
+    alert.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: nil))
+    alert.addAction(UIAlertAction(title: "Add", style: .Default, handler: { [weak self] action in
+      if let field = alert.textFields?.first, text = field.text {
+        self?.addTask(text)
+      }
+      }))
+    presentViewController(alert, animated: true, completion: nil)
+  }
+
+  func addTask(text: String) {
+    // TODO(azinman): Make real
+    let task = Task(text: text)
+    todoList.tasks.insert(task, atIndex: 0)
+    tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: 0, inSection: Section.Tasks.rawValue)], withRowAnimation: .Automatic)
+  }
+
+  func deleteTask(indexPath: NSIndexPath) {
+    todoList.tasks.removeAtIndex(indexPath.row)
+    tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
+  }
+}
+
+// Displays the memebers of the todo list as photos and an invite button to launch the invite flow
+class InviteCell: UITableViewCell {
+  @IBOutlet weak var memberView: MemberView!
+  var todoList: TodoList?
+
+  // Member view has its own render method that draws the member photos
+  func updateView() {
+    selectionStyle = .None
+    memberView.todoList = todoList
+    memberView.updateView()
+  }
+}
+
+/// TaskCell displays a single task with a checkbox for completing it, the text of the task, and
+/// the time it was added.
+class TaskCell: UITableViewCell {
+  @IBOutlet weak var completeButton: UIButton!
+  @IBOutlet weak var taskNameLabel: UILabel!
+  @IBOutlet weak var addedAtLabel: UILabel!
+  var task = Task(text: "default")
+
+  func updateView() {
+    selectionStyle = .None
+
+    if task.done {
+      let str = NSAttributedString(string: task.text, attributes: [
+        NSStrikethroughStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue,
+        NSForegroundColorAttributeName: UIColor.lightGrayColor()
+      ])
+      taskNameLabel.attributedText = str
+    } else {
+      taskNameLabel.text = task.text
+    }
+
+    addedAtLabel.text = TasksViewController.dateFormatter.stringFromDate(task.addedAt)
+    updateCompleteButton()
+    setNeedsLayout()
+  }
+
+  func updateCompleteButton() {
+    if task.done {
+      completeButton.setImage(UIImage(named: "checkmarkOn"), forState: .Normal)
+    } else {
+      completeButton.setImage(UIImage(named: "checkmarkOff"), forState: .Normal)
+    }
+  }
+
+  @IBAction func toggleComplete() {
+    task.done = !task.done
+    updateView()
+  }
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/TodoList.swift b/SyncbaseTodosApp/SyncbaseTodos/TodoList.swift
new file mode 100644
index 0000000..d3f2275
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/TodoList.swift
@@ -0,0 +1,30 @@
+// Copyright 2016 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+import Foundation
+
+// All of this is trash to be replaced by syncbase model
+class TodoList {
+  var name: String = ""
+  var updatedAt: NSDate = NSDate()
+  var members: [Person] = []
+  var tasks: [Task] = []
+
+  convenience init (name: String) {
+    self.init()
+    self.name = name
+  }
+
+  func isComplete() -> Bool {
+    return tasks.filter { task in
+      return !task.done
+    }.count == 0
+  }
+
+  func numberTasksComplete() -> Int {
+    return tasks.filter { task in
+      return task.done
+    }.count
+  }
+}
\ No newline at end of file
diff --git a/SyncbaseTodosApp/SyncbaseTodos/TodosViewController.swift b/SyncbaseTodosApp/SyncbaseTodos/TodosViewController.swift
new file mode 100644
index 0000000..e83bcda
--- /dev/null
+++ b/SyncbaseTodosApp/SyncbaseTodos/TodosViewController.swift
@@ -0,0 +1,181 @@
+// Copyright 2016 The Vanadium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+import UIKit
+
+class TodosViewController: UIViewController {
+  @IBOutlet weak var tableView: UITableView!
+  @IBOutlet weak var addButton: UIBarButtonItem!
+  // The menu toolbar is shown when the "edit" navigation bar is pressed
+  @IBOutlet weak var menuToolbar: UIToolbar!
+  @IBOutlet weak var menuToolbarTopConstraint: NSLayoutConstraint!
+  var data: [TodoList] = []
+  static let dateFormatter: NSDateFormatter = {
+    let dateFormatter = NSDateFormatter()
+    dateFormatter.dateFormat = "MMM d"
+    return dateFormatter
+  }()
+
+  override func viewDidLoad() {
+    super.viewDidLoad()
+    // Hide the bottom menu by default
+    menuToolbarTopConstraint.constant = -menuToolbar.frame.size.height
+    createFakeData()
+    tableView.reloadData()
+  }
+
+  override func viewWillAppear(animated: Bool) {
+    super.viewWillAppear(animated)
+    tableView.reloadData()
+  }
+
+  func createFakeData() {
+    // TODO(azinman): Remove
+    data = [TodoList(name: "Nooglers Training"), TodoList(name: "Sunday BBQ Shopping")]
+    let person = Person(name: "John", imageName: "profilePhoto")
+    data[0].members = [person, person, person]
+    data[0].tasks = [
+      Task(text: "Retrieve Noogler Hat"),
+      Task(text: "Eat lunch at a cafe", done: true),
+      Task(text: "Pick up badge", done: true),
+      Task(text: "Parkin building 45", done: true),
+    ]
+
+    data[1].members = [person, person]
+    data[1].tasks = [
+      Task(text: "Apples"),
+      Task(text: "Frosted Mini Wheats", done: true),
+      Task(text: "Whole wheat bagels"),
+      Task(text: "Kale"),
+      Task(text: "Eggs", done: true),
+    ]
+  }
+
+  override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
+    // When we tap on a todo list and segue into the tasks list
+    if let tvc = segue.destinationViewController as? TasksViewController,
+      cell = sender as? TodoListCell,
+      indexPath = tableView.indexPathForCell(cell) {
+        tvc.todoList = data[indexPath.row]
+    }
+  }
+}
+
+//Handles tableview functionality, including rendering and swipe actions. Tap actions are
+// handled directly in Main.storyboard using segues
+extension TodosViewController: UITableViewDelegate, UITableViewDataSource {
+  func numberOfSectionsInTableView(tableView: UITableView) -> Int {
+    return 1
+  }
+
+  func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
+    return data.count
+  }
+
+  func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
+    // TodoListCell is the prototype inside the Main.storyboard. Cannot fail.
+    let cell = tableView.dequeueReusableCellWithIdentifier(TodoListCell.todoListCellId, forIndexPath: indexPath) as! TodoListCell
+    cell.todoList = data[indexPath.row]
+    cell.updateView()
+    return cell
+  }
+
+  func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
+    switch editingStyle {
+    case .Delete:
+      data.removeAtIndex(indexPath.row)
+      tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
+    default: break
+    }
+  }
+
+  func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
+    let actions = [
+      UITableViewRowAction(style: .Normal, title: "Check All", handler: { [weak self](action, indexPath) in
+        self?.completeAllTasks(indexPath)
+      }),
+      UITableViewRowAction(style: .Default, title: "Delete", handler: { [weak self](action, indexPath) in
+        self?.deleteList(indexPath)
+      })
+    ]
+    return actions
+  }
+}
+
+// IBActions and data modification functions
+extension TodosViewController {
+  @IBAction func toggleEdit() {
+    // Do this manually because we're a UIViewController not a UITableViewController, so we don't
+    // get editing behavior for free
+    if tableView.editing {
+      tableView.setEditing(false, animated: true)
+      navigationItem.leftBarButtonItem?.title = "Edit"
+      menuToolbarTopConstraint.constant = -menuToolbar.frame.size.height
+      addButton.enabled = true
+    } else {
+      tableView.setEditing(true, animated: true)
+      navigationItem.leftBarButtonItem?.title = "Done"
+      menuToolbarTopConstraint.constant = 0
+      addButton.enabled = false
+    }
+
+    UIView.animateWithDuration(0.35) { self.view.layoutIfNeeded() }
+  }
+
+  @IBAction func debug() {
+    // TODO(azinman): Make real
+  }
+
+  @IBAction func toggleSharing() {
+    // TODO(azinman): Make real
+  }
+
+  func completeAllTasks(indexPath: NSIndexPath) {
+    // TODO(azinman): Make real
+    assert(data.indices.contains(indexPath.row), "data does not contain that index path")
+    let todoList = data[indexPath.row]
+    for task in todoList.tasks {
+      task.done = true
+    }
+    tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
+  }
+
+  func deleteList(indexPath: NSIndexPath) {
+    // TODO(azinman): Make real
+    data.removeAtIndex(indexPath.row)
+    tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
+  }
+}
+
+/// Shows a todo list's name, number of items completed, photos of members, and last modified date.
+class TodoListCell: UITableViewCell {
+  @IBOutlet weak var titleLabel: UILabel!
+  @IBOutlet weak var completedLabel: UILabel!
+  @IBOutlet weak var memberView: MemberView!
+  @IBOutlet weak var lastModifiedLabel: UILabel!
+  static let todoListCellId = "todoListCellId"
+  var todoList = TodoList()
+
+  // Fills in the iboutlets with data from todoList local property.
+  // memberView has it's only render method that draws out the photos of the members in this todo
+  // list.
+  func updateView() {
+    if todoList.isComplete() {
+      // Draw a strikethrough
+      let str = NSAttributedString(string: todoList.name, attributes: [
+        NSStrikethroughStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue,
+        NSForegroundColorAttributeName: UIColor.lightGrayColor()
+      ])
+      titleLabel.attributedText = str
+    } else {
+      titleLabel.text = todoList.name
+    }
+    completedLabel.text = "\(todoList.numberTasksComplete())/\(todoList.tasks.count) completed"
+    lastModifiedLabel.text = TodosViewController.dateFormatter.stringFromDate(todoList.updatedAt)
+    // Draw the photos of list members
+    memberView.todoList = todoList
+    memberView.updateView()
+  }
+
+}
\ No newline at end of file
