diff --git a/projects/todos/app/build.gradle b/projects/todos/app/build.gradle
index 698c363..3f6b1a5 100644
--- a/projects/todos/app/build.gradle
+++ b/projects/todos/app/build.gradle
@@ -29,6 +29,7 @@
     testCompile 'junit:junit:4.12'
     compile 'com.android.support:appcompat-v7:23.1.1'
     compile 'com.android.support:design:23.1.1'
-    compile 'com.firebase:firebase-client-android:2.5.2+'
-    compile 'com.android.support:recyclerview-v7:+'
+    compile 'com.firebase:firebase-client-android:2.5.2'
+    compile 'com.android.support:cardview-v7:23.1.1'
+    compile 'com.android.support:recyclerview-v7:23.1.1'
 }
diff --git a/projects/todos/app/src/main/AndroidManifest.xml b/projects/todos/app/src/main/AndroidManifest.xml
index 89aa1a7..6bb5351 100644
--- a/projects/todos/app/src/main/AndroidManifest.xml
+++ b/projects/todos/app/src/main/AndroidManifest.xml
@@ -12,7 +12,6 @@
         android:theme="@style/AppTheme">
         <activity
             android:name="io.v.todos.MainActivity"
-            android:screenOrientation="portrait"
             android:label="@string/app_name"
             android:theme="@style/AppTheme.NoActionBar">
             <intent-filter>
@@ -23,7 +22,6 @@
         </activity>
         <activity
             android:name="io.v.todos.TodoListActivity"
-            android:screenOrientation="portrait"
             android:label="@string/app_name"
             android:theme="@style/AppTheme.NoActionBar">
         </activity>
diff --git a/projects/todos/app/src/main/java/io/v/todos/FirebaseSingleton.java b/projects/todos/app/src/main/java/io/v/todos/FirebaseSingleton.java
new file mode 100644
index 0000000..0efd48c
--- /dev/null
+++ b/projects/todos/app/src/main/java/io/v/todos/FirebaseSingleton.java
@@ -0,0 +1,38 @@
+// 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.
+
+package io.v.todos;
+
+import android.content.Context;
+
+import com.firebase.client.Firebase;
+
+/**
+ * TODO(alexfandrianto): We may want to shove a lot more into this singleton and have it subclass
+ * a common interface with Syncbase. I want this to also manage data watches and changes.
+ *
+ * @author alexfandrianto
+ */
+public class FirebaseSingleton {
+    private FirebaseSingleton() {} // Marked private to prevent accidental instantiation.
+
+    private static FirebaseSingleton singleton;
+
+    /**
+     * Obtain a database singleton that can be used to manipulate data.
+     *
+     * @param context An Android context, usually from an Android activity or application.
+     * @return
+     */
+    public synchronized static FirebaseSingleton getDatabase(Context context) {
+        if (singleton == null) {
+            singleton = new FirebaseSingleton();
+
+            // Set up Firebase with the context and have it persist data locally even when offline.
+            Firebase.setAndroidContext(context);
+            Firebase.getDefaultConfig().setPersistenceEnabled(true);
+        }
+        return singleton;
+    }
+}
diff --git a/projects/todos/app/src/main/java/io/v/todos/MainActivity.java b/projects/todos/app/src/main/java/io/v/todos/MainActivity.java
index ed74697..da7119f 100644
--- a/projects/todos/app/src/main/java/io/v/todos/MainActivity.java
+++ b/projects/todos/app/src/main/java/io/v/todos/MainActivity.java
@@ -164,11 +164,8 @@
             }
         }).attachToRecyclerView(recyclerView);
 
-        // Set up Firebase with the context and tell it to persist data locally even if we're offline.
-        Firebase.setAndroidContext(this);
-        Firebase.getDefaultConfig().setPersistenceEnabled(true);
-
         // Prepare our Firebase Reference and the primary listener (SNACKOOS).
+        FirebaseSingleton.getDatabase(this);
         myFirebaseRef = new Firebase(FIREBASE_EXAMPLE_URL);
         setUpSnackoos();
     }
diff --git a/projects/todos/app/src/main/java/io/v/todos/TaskRecyclerAdapter.java b/projects/todos/app/src/main/java/io/v/todos/TaskRecyclerAdapter.java
index e4caae3..91ff8cc 100644
--- a/projects/todos/app/src/main/java/io/v/todos/TaskRecyclerAdapter.java
+++ b/projects/todos/app/src/main/java/io/v/todos/TaskRecyclerAdapter.java
@@ -51,7 +51,7 @@
                 return i;
             }
         }
-        return 0;
+        return backup.size();
     }
 
     public void setShowDone(boolean showDone) {
diff --git a/projects/todos/app/src/main/java/io/v/todos/TaskViewHolder.java b/projects/todos/app/src/main/java/io/v/todos/TaskViewHolder.java
index d07079c..632441f 100644
--- a/projects/todos/app/src/main/java/io/v/todos/TaskViewHolder.java
+++ b/projects/todos/app/src/main/java/io/v/todos/TaskViewHolder.java
@@ -4,6 +4,7 @@
 
 package io.v.todos;
 
+import android.support.v7.widget.CardView;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.widget.ImageView;
@@ -13,13 +14,13 @@
  * @author alexfandrianto
  */
 public class TaskViewHolder extends RecyclerView.ViewHolder{
-    private View myView;
+    private CardView myView;
     private boolean showDone = true;
 
     public TaskViewHolder(View itemView) {
         super(itemView);
 
-        myView = itemView;
+        myView = (CardView)itemView;
     }
 
     public void bindTask(Task task, View.OnClickListener listener) {
@@ -34,7 +35,7 @@
         final TextView created=(TextView)myView.findViewById(R.id.task_time);
         created.setText(computeCreated(task));
 
-        myView.setBackgroundColor(task.getDone() ? 0xFFCCCCCC : 0xFFFFFFFF);
+        myView.setCardBackgroundColor(task.getDone() ? 0xFFCCCCCC : 0xFFFFFFFF);
 
         myView.setTag(task.getKey());
         myView.setOnClickListener(listener);
diff --git a/projects/todos/app/src/main/java/io/v/todos/TodoListActivity.java b/projects/todos/app/src/main/java/io/v/todos/TodoListActivity.java
index 4bea69f..c9a0a3c 100644
--- a/projects/todos/app/src/main/java/io/v/todos/TodoListActivity.java
+++ b/projects/todos/app/src/main/java/io/v/todos/TodoListActivity.java
@@ -163,11 +163,8 @@
             }
         }).attachToRecyclerView(recyclerView);
 
-        // Set up Firebase with the context and tell it to persist data locally even if we're offline.
-        Firebase.setAndroidContext(this);
-        //Firebase.getDefaultConfig().setPersistenceEnabled(true);
-
         // Prepare our Firebase Reference and the primary listener (SNACKOOS).
+        FirebaseSingleton.getDatabase(this);
         myFirebaseRef = new Firebase(MainActivity.FIREBASE_EXAMPLE_URL);
         setUpSnackoo();
         setUpSnackoos();
diff --git a/projects/todos/app/src/main/java/io/v/todos/TodoListViewHolder.java b/projects/todos/app/src/main/java/io/v/todos/TodoListViewHolder.java
index 82b97a1..f0d36c4 100644
--- a/projects/todos/app/src/main/java/io/v/todos/TodoListViewHolder.java
+++ b/projects/todos/app/src/main/java/io/v/todos/TodoListViewHolder.java
@@ -4,6 +4,7 @@
 
 package io.v.todos;
 
+import android.support.v7.widget.CardView;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.widget.TextView;
@@ -12,12 +13,12 @@
  * @author alexfandrianto
  */
 public class TodoListViewHolder extends RecyclerView.ViewHolder {
-    private View myView;
+    private CardView myView;
 
     public TodoListViewHolder(View itemView) {
         super(itemView);
 
-        myView = itemView;
+        myView = (CardView)itemView;
     }
 
     public void bindTodoList(TodoList todoList, View.OnClickListener listener) {
@@ -32,7 +33,7 @@
         final TextView timeAgo=(TextView)myView.findViewById(R.id.todo_list_time);
         timeAgo.setText(computeTimeAgo(todoList));
 
-        myView.setBackgroundColor(todoList.getDone() ? 0xFFCCCCCC : 0xFFFFFFFF);
+        myView.setCardBackgroundColor(todoList.getDone() ? 0xFFCCCCCC : 0xFFFFFFFF);
 
         myView.setTag(todoList.getKey());
         myView.setOnClickListener(listener);
diff --git a/projects/todos/app/src/main/res/layout/task_row.xml b/projects/todos/app/src/main/res/layout/task_row.xml
index a06e741..8fedb85 100644
--- a/projects/todos/app/src/main/res/layout/task_row.xml
+++ b/projects/todos/app/src/main/res/layout/task_row.xml
@@ -1,18 +1,22 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/root"
+<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    xmlns:card_view="http://schemas.android.com/apk/res-auto"
+    android:layout_marginBottom="1dp"
+    card_view:cardElevation="1dp"
+    card_view:cardBackgroundColor="#DDDDFF"
+    card_view:cardCornerRadius="5dp">
 
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="horizontal"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:id="@+id/row">
+        android:layout_height="wrap_content">
 
         <ImageView android:id="@+id/task_done"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_weight = "0"
             android:src="@android:drawable/checkbox_on_background"
             android:layout_gravity="center_vertical"
             android:layout_margin="@dimen/fab_margin"
@@ -29,26 +33,19 @@
                 android:layout_height="wrap_content"
                 android:layout_weight = "1"
                 android:gravity="center_vertical"
-                android:layout_alignParentTop="true"
-                android:layout_alignParentBottom="true"
                 android:textStyle="bold"
                 android:textSize="22sp"
                 android:textColor="#000000"
-                android:layout_marginTop="5dp"
-                android:layout_marginBottom="5dp" />
+                android:layout_margin="5dp"  />
 
             <TextView android:id="@+id/task_time"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:layout_weight = "1"
                 android:gravity="center_vertical"
-                android:layout_alignParentTop="true"
-                android:layout_alignParentBottom="true"
-                android:textStyle="bold"
-                android:textSize="22sp"
-                android:textColor="#000000"
-                android:layout_marginTop="5dp"
-                android:layout_marginBottom="5dp" />
+                android:textSize="12sp"
+                android:textColor="#333333"
+                android:layout_margin="5dp" />
         </LinearLayout>
     </LinearLayout>
-</RelativeLayout>
\ No newline at end of file
+</android.support.v7.widget.CardView>
\ No newline at end of file
diff --git a/projects/todos/app/src/main/res/layout/todo_list_row.xml b/projects/todos/app/src/main/res/layout/todo_list_row.xml
index 04a4082..f69ddfb 100644
--- a/projects/todos/app/src/main/res/layout/todo_list_row.xml
+++ b/projects/todos/app/src/main/res/layout/todo_list_row.xml
@@ -1,65 +1,51 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/root"
+<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    xmlns:card_view="http://schemas.android.com/apk/res-auto"
+    android:layout_marginBottom="1dp"
+    card_view:cardElevation="1dp"
+    card_view:cardBackgroundColor="#DDDDFF"
+    card_view:cardCornerRadius="5dp">
 
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        android:orientation="horizontal"
+        android:orientation="vertical"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:id="@+id/row">
+        android:layout_height="wrap_content">
+
+        <TextView android:id="@+id/todo_list_name"
+            android:layout_width="fill_parent"
+            android:layout_weight = "1"
+            android:layout_height="wrap_content"
+            android:gravity="center_vertical"
+            android:textStyle="bold"
+            android:textSize="22sp"
+            android:textColor="#000000"
+            android:layout_margin="5dp" />
 
         <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-            android:orientation="vertical"
+            android:orientation="horizontal"
             android:layout_width="match_parent"
-            android:layout_height="wrap_content">
+            android:layout_height="wrap_content"
+            android:layout_weight = "1">
 
-            <TextView android:id="@+id/todo_list_name"
-                android:layout_width="fill_parent"
+            <TextView android:id="@+id/todo_list_completed"
+                android:layout_width="wrap_content"
                 android:layout_weight = "1"
-                android:layout_height="wrap_content"
+                android:layout_height="fill_parent"
                 android:gravity="center_vertical"
-                android:layout_alignParentTop="true"
-                android:layout_alignParentBottom="true"
-                android:textStyle="bold"
-                android:textSize="22dp"
-                android:textColor="#000000"
-                android:layout_marginTop="5dp"
-                android:layout_marginBottom="5dp" />
+                android:textSize="12sp"
+                android:textColor="#333333"
+                android:layout_margin="5dp" />
 
-            <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-                android:orientation="horizontal"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_weight = "1">
-
-                <TextView android:id="@+id/todo_list_completed"
-                    android:layout_width="wrap_content"
-                    android:layout_weight = "1"
-                    android:layout_height="fill_parent"
-                    android:gravity="center_vertical"
-                    android:layout_alignParentTop="true"
-                    android:layout_alignParentBottom="true"
-                    android:textStyle="bold"
-                    android:textSize="22dp"
-                    android:textColor="#000000"
-                    android:layout_marginTop="5dp"
-                    android:layout_marginBottom="5dp" />
-
-                <TextView android:id="@+id/todo_list_time"
-                    android:layout_width="wrap_content"
-                    android:layout_weight = "1"
-                    android:layout_height="fill_parent"
-                    android:gravity="center_vertical"
-                    android:layout_alignParentTop="true"
-                    android:layout_alignParentBottom="true"
-                    android:textStyle="bold"
-                    android:textSize="22dp"
-                    android:textColor="#000000"
-                    android:layout_marginTop="5dp"
-                    android:layout_marginBottom="5dp" />
-            </LinearLayout>
+            <TextView android:id="@+id/todo_list_time"
+                android:layout_width="wrap_content"
+                android:layout_weight = "1"
+                android:layout_height="fill_parent"
+                android:gravity="center_vertical"
+                android:textSize="12sp"
+                android:textColor="#333333"
+                android:layout_margin="5dp" />
         </LinearLayout>
     </LinearLayout>
-</RelativeLayout>
\ No newline at end of file
+</android.support.v7.widget.CardView>
\ No newline at end of file
