diff --git a/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivity.java b/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivity.java
index d94010f..5c5ae32 100644
--- a/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivity.java
+++ b/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivity.java
@@ -18,7 +18,7 @@
 
         final TextView txtOutput = (TextView) findViewById(R.id.displayTextView);
         // Binds the Syncbase row named "message" to displayTextView, a.k.a. txtOutput.
-        binder().onKey("message")
+        dataBinder().forKey("message")
                 .bindTo(txtOutput);
 
         final EditText txtInput = (EditText) findViewById(R.id.inputEditText);
diff --git a/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityALaCarte.java b/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityALaCarte.java
index ef06d2f..d86534a 100644
--- a/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityALaCarte.java
+++ b/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityALaCarte.java
@@ -14,7 +14,6 @@
 import io.v.baku.toolkit.bind.BindingBuilder;
 import io.v.rx.syncbase.RxAndroidSyncbase;
 import io.v.rx.syncbase.RxDb;
-import io.v.rx.syncbase.RxTable;
 import io.v.rx.syncbase.UserSyncgroup;
 import rx.Subscription;
 
@@ -33,7 +32,6 @@
         mSb = new RxAndroidSyncbase(vActivity);
         // Operate on Syncbase io.v.baku.hellobaku/db/t
         final RxDb db = mSb.rxApp(getPackageName()).rxDb("db");
-        final RxTable t = db.rxTable("t");
 
         final TextView txtOutput = (TextView) findViewById(R.id.displayTextView);
 
@@ -46,8 +44,8 @@
         mActivityDataBindings = builder.getAllBindings();
 
         // Binds the Syncbase row named "message" to displayTextView, a.k.a. txtOutput.
-        builder.onKey("message")
-                .bindTo(txtOutput);
+        builder.forKey("message")
+               .bindTo(txtOutput);
 
         final EditText txtInput = (EditText) findViewById(R.id.inputEditText);
         findViewById(R.id.actionButton).setOnClickListener(bn -> {
diff --git a/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityComposition.java b/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityComposition.java
index d5c63e8..773be5c 100644
--- a/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityComposition.java
+++ b/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityComposition.java
@@ -24,7 +24,7 @@
 
         final TextView txtOutput = (TextView) findViewById(R.id.displayTextView);
         // Binds the Syncbase row named "message" to displayTextView, a.k.a. txtOutput.
-        mBaku.binder().onKey("message")
+        mBaku.dataBinder().forKey("message")
                 .bindTo(txtOutput);
 
         final EditText txtInput = (EditText) findViewById(R.id.inputEditText);
diff --git a/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityOneWay.java b/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityOneWay.java
index 71a21be..0d2e52e 100644
--- a/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityOneWay.java
+++ b/examples/hellobaku/android/app/src/main/java/io/v/baku/hellobaku/HelloActivityOneWay.java
@@ -20,7 +20,7 @@
         setContentView(R.layout.activity_hello);
 
         // Binds the Syncbase row named "message" to displayTextView, read-only
-        binder().onKey("message")
+        dataBinder().forKey("message")
                 .bindReadOnly(R.id.displayTextView);
 
         final EditText txtInput = (EditText) findViewById(R.id.inputEditText);
