diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 84edd05..3eb707a 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest  xmlns:android="http://schemas.android.com/apk/res/android"
-	package="org.zeroxlab.benchmark"
+	package="org.zeroxlab.zeroxbenchmark"
     android:versionCode="9"
     android:versionName="1.1.5"
     >
@@ -59,7 +59,7 @@
 	</activity>
 
 	<activity
-	android:name="org.zeroxlab.benchmark.TesterGC"
+	android:name="org.zeroxlab.zeroxbenchmark.TesterGC"
 	android:screenOrientation="nosensor"
 	>
 	<intent-filter>
@@ -68,7 +68,7 @@
 	</activity>
 
 	<activity
-	android:name="org.zeroxlab.benchmark.TesterArithmetic"
+	android:name="org.zeroxlab.zeroxbenchmark.TesterArithmetic"
 	android:screenOrientation="nosensor"
 	>
 	<intent-filter>
@@ -77,7 +77,7 @@
 	</activity>
 
 	<activity
-	android:name="org.zeroxlab.benchmark.TesterJavascript"
+	android:name="org.zeroxlab.zeroxbenchmark.TesterJavascript"
 	android:screenOrientation="nosensor"
 	>
 	<intent-filter>
@@ -86,7 +86,7 @@
 	</activity>
 
 	<activity
-	android:name="org.zeroxlab.benchmark.TesterScimark2"
+	android:name="org.zeroxlab.zeroxbenchmark.TesterScimark2"
 	android:screenOrientation="nosensor"
 	>
 	<intent-filter>
@@ -95,7 +95,7 @@
 	</activity>
 
 	<activity
-	android:name="org.zeroxlab.benchmark.Report"
+	android:name="org.zeroxlab.zeroxbenchmark.Report"
 	android:screenOrientation="nosensor"
 	>
 	<intent-filter>
@@ -104,7 +104,7 @@
 	</activity>
 
 	<activity
-	android:name="org.zeroxlab.benchmark.Upload"
+	android:name="org.zeroxlab.zeroxbenchmark.Upload"
 	android:screenOrientation="nosensor"
 	>
 	<intent-filter>
diff --git a/src/com/nea/nehe/lesson08/Cube.java b/src/com/nea/nehe/lesson08/Cube.java
index 412bd7a..7b1604a 100644
--- a/src/com/nea/nehe/lesson08/Cube.java
+++ b/src/com/nea/nehe/lesson08/Cube.java
@@ -238,7 +238,7 @@
      */
     public void loadGLTexture(GL10 gl, Context context) {
         //Get the texture from the Android resource directory
-        InputStream is = context.getResources().openRawResource(org.zeroxlab.benchmark.R.drawable.glass);
+        InputStream is = context.getResources().openRawResource(org.zeroxlab.zeroxbenchmark.R.drawable.glass);
         Bitmap bitmap = null;
         try {
             //BitmapFactory is an Android graphics utility for images
diff --git a/src/com/nea/nehe/lesson08/Lesson08.java b/src/com/nea/nehe/lesson08/Lesson08.java
index 9b1553c..78c423c 100644
--- a/src/com/nea/nehe/lesson08/Lesson08.java
+++ b/src/com/nea/nehe/lesson08/Lesson08.java
@@ -15,7 +15,7 @@
 
 package com.nea.nehe.lesson08;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
diff --git a/src/com/nea/nehe/lesson08/Run.java b/src/com/nea/nehe/lesson08/Run.java
index d29f742..b6261f9 100644
--- a/src/com/nea/nehe/lesson08/Run.java
+++ b/src/com/nea/nehe/lesson08/Run.java
@@ -18,7 +18,7 @@
 
 package com.nea.nehe.lesson08;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/src/com/nea/nehe/lesson16/Cube.java b/src/com/nea/nehe/lesson16/Cube.java
index 7e0d82b..0fa57a9 100644
--- a/src/com/nea/nehe/lesson16/Cube.java
+++ b/src/com/nea/nehe/lesson16/Cube.java
@@ -245,7 +245,7 @@
      */
     public void loadGLTexture(GL10 gl, Context context) {
         //Get the texture from the Android resource directory
-        InputStream is = context.getResources().openRawResource(org.zeroxlab.benchmark.R.drawable.crate);
+        InputStream is = context.getResources().openRawResource(org.zeroxlab.zeroxbenchmark.R.drawable.crate);
         Bitmap bitmap = null;
         try {
             //BitmapFactory is an Android graphics utility for images
diff --git a/src/com/nea/nehe/lesson16/Lesson16.java b/src/com/nea/nehe/lesson16/Lesson16.java
index 0109305..7cb3c2e 100644
--- a/src/com/nea/nehe/lesson16/Lesson16.java
+++ b/src/com/nea/nehe/lesson16/Lesson16.java
@@ -15,7 +15,7 @@
 
 package com.nea.nehe.lesson16;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
diff --git a/src/com/nea/nehe/lesson16/Run.java b/src/com/nea/nehe/lesson16/Run.java
index a774e5b..e12ad4c 100644
--- a/src/com/nea/nehe/lesson16/Run.java
+++ b/src/com/nea/nehe/lesson16/Run.java
@@ -18,7 +18,7 @@
 
 package com.nea.nehe.lesson16;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/src/jnt/scimark2/commandline.java b/src/jnt/scimark2/commandline.java
index 2ab8574..c2a138c 100644
--- a/src/jnt/scimark2/commandline.java
+++ b/src/jnt/scimark2/commandline.java
@@ -2,7 +2,7 @@
 
 import java.util.Properties;
 
-import org.zeroxlab.benchmark.TesterScimark2;
+import org.zeroxlab.zeroxbenchmark.TesterScimark2;
 import android.os.Bundle;
 
 /**
diff --git a/src/org/itri/teapot/MyGLSurfaceView.java b/src/org/itri/teapot/MyGLSurfaceView.java
index 2019075..c3fa69f 100644
--- a/src/org/itri/teapot/MyGLSurfaceView.java
+++ b/src/org/itri/teapot/MyGLSurfaceView.java
@@ -18,7 +18,7 @@
 
 package org.itri.teapot;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.content.Context;
 import android.opengl.GLSurfaceView;
diff --git a/src/org/itri/teapot/TeapotES.java b/src/org/itri/teapot/TeapotES.java
index 229ebb3..c7cb76b 100644
--- a/src/org/itri/teapot/TeapotES.java
+++ b/src/org/itri/teapot/TeapotES.java
@@ -18,7 +18,7 @@
 
 package org.itri.teapot;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/src/org/itri/teapot/TeapotRenderer.java b/src/org/itri/teapot/TeapotRenderer.java
index 25233cc..f1234f1 100644
--- a/src/org/itri/teapot/TeapotRenderer.java
+++ b/src/org/itri/teapot/TeapotRenderer.java
@@ -18,7 +18,7 @@
 
 package org.itri.teapot;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
diff --git a/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java b/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java
index 16c140e..9bd7cce 100644
--- a/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java
+++ b/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java
@@ -19,7 +19,7 @@
 
 package org.opensolaris.hub.libmicro;
 
-import org.zeroxlab.benchmark.*;
+import org.zeroxlab.zeroxbenchmark.*;
 
 import android.util.Log;
 
diff --git a/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java b/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java
index e44c4eb..edcce38 100644
--- a/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java
+++ b/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java
@@ -19,7 +19,7 @@
 
 package org.opensolaris.hub.libmicro;
 
-import org.zeroxlab.benchmark.*;
+import org.zeroxlab.zeroxbenchmark.*;
 
 import android.os.Bundle;
 import android.content.Intent;
diff --git a/src/org/zeroxlab/arithmetic/LinpackLoop.java b/src/org/zeroxlab/arithmetic/LinpackLoop.java
index fc036ce..005d9a9 100644
--- a/src/org/zeroxlab/arithmetic/LinpackLoop.java
+++ b/src/org/zeroxlab/arithmetic/LinpackLoop.java
@@ -1,6 +1,6 @@
 package org.zeroxlab.arithmetic;
 
-import org.zeroxlab.benchmark.TesterArithmetic;
+import org.zeroxlab.zeroxbenchmark.TesterArithmetic;
 import android.os.Bundle;
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/ActivitySettings.java b/src/org/zeroxlab/benchmark/ActivitySettings.java
index 9eb3b16..a40aff0 100644
--- a/src/org/zeroxlab/benchmark/ActivitySettings.java
+++ b/src/org/zeroxlab/benchmark/ActivitySettings.java
@@ -16,7 +16,7 @@
  * Authored by Julian Chu <walkingice@0xlab.org>
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/Benchmark.java b/src/org/zeroxlab/benchmark/Benchmark.java
index 7ab4e09..33589fb 100644
--- a/src/org/zeroxlab/benchmark/Benchmark.java
+++ b/src/org/zeroxlab/benchmark/Benchmark.java
@@ -17,7 +17,7 @@
  *             Joseph Chang (bizkit) <bizkit@0xlab.org>
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
@@ -81,7 +81,7 @@
 public class Benchmark extends TabActivity implements View.OnClickListener {
 
     public final static String TAG     = "Benchmark";
-    public final static String PACKAGE = "org.zeroxlab.benchmark";
+    public final static String PACKAGE = "org.zeroxlab.zeroxbenchmark";
 
     private final static String mOutputFile = "0xBenchmark";
 
@@ -287,7 +287,7 @@
     @Override
     public boolean onOptionsItemSelected(MenuItem menu) {
         if (menu.getGroupId() == GROUP_DEFAULT && menu.getItemId() == SETTINGS_ID) {
-            org.zeroxlab.utils.Util.launchActivity(this, "org.zeroxlab.benchmark.ActivitySettings");
+            org.zeroxlab.utils.Util.launchActivity(this, "org.zeroxlab.zeroxbenchmark.ActivitySettings");
         }
         return true;
     }
diff --git a/src/org/zeroxlab/benchmark/Case.java b/src/org/zeroxlab/benchmark/Case.java
index 088b0b2..8a0070a 100644
--- a/src/org/zeroxlab/benchmark/Case.java
+++ b/src/org/zeroxlab/benchmark/Case.java
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
 import android.os.SystemClock;
 
-import org.zeroxlab.benchmark.Scenario;
+import org.zeroxlab.zeroxbenchmark.Scenario;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/src/org/zeroxlab/benchmark/CaseArithmetic.java b/src/org/zeroxlab/benchmark/CaseArithmetic.java
index d2a25be..a8cf15f 100644
--- a/src/org/zeroxlab/benchmark/CaseArithmetic.java
+++ b/src/org/zeroxlab/benchmark/CaseArithmetic.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import java.util.ArrayList;
 
@@ -28,7 +28,7 @@
 import android.content.Intent;
 import android.os.Bundle;
 
-import org.zeroxlab.benchmark.TesterArithmetic;
+import org.zeroxlab.zeroxbenchmark.TesterArithmetic;
 
 public class CaseArithmetic extends Case {
 
@@ -39,7 +39,7 @@
     public static int Round  = 3;
 
     CaseArithmetic() {
-        super("CaseArithmetic", "org.zeroxlab.benchmark.TesterArithmetic", Repeat, Round);
+        super("CaseArithmetic", "org.zeroxlab.zeroxbenchmark.TesterArithmetic", Repeat, Round);
 
         mType = "mflops";
         String [] _tmp = {
diff --git a/src/org/zeroxlab/benchmark/CaseCanvas.java b/src/org/zeroxlab/benchmark/CaseCanvas.java
index 5d5164c..b169abc 100644
--- a/src/org/zeroxlab/benchmark/CaseCanvas.java
+++ b/src/org/zeroxlab/benchmark/CaseCanvas.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/CaseDrawArc.java b/src/org/zeroxlab/benchmark/CaseDrawArc.java
index ac27090..58e05e4 100644
--- a/src/org/zeroxlab/benchmark/CaseDrawArc.java
+++ b/src/org/zeroxlab/benchmark/CaseDrawArc.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/CaseDrawCircle.java b/src/org/zeroxlab/benchmark/CaseDrawCircle.java
index 571779c..5eb14a7 100644
--- a/src/org/zeroxlab/benchmark/CaseDrawCircle.java
+++ b/src/org/zeroxlab/benchmark/CaseDrawCircle.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/CaseDrawCircle2.java b/src/org/zeroxlab/benchmark/CaseDrawCircle2.java
index 8d2d6c7..a8bb9cc 100644
--- a/src/org/zeroxlab/benchmark/CaseDrawCircle2.java
+++ b/src/org/zeroxlab/benchmark/CaseDrawCircle2.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/CaseDrawImage.java b/src/org/zeroxlab/benchmark/CaseDrawImage.java
index 6adf1d1..b5ba748 100644
--- a/src/org/zeroxlab/benchmark/CaseDrawImage.java
+++ b/src/org/zeroxlab/benchmark/CaseDrawImage.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/CaseDrawRect.java b/src/org/zeroxlab/benchmark/CaseDrawRect.java
index d3e8d47..bacc907 100644
--- a/src/org/zeroxlab/benchmark/CaseDrawRect.java
+++ b/src/org/zeroxlab/benchmark/CaseDrawRect.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/CaseDrawText.java b/src/org/zeroxlab/benchmark/CaseDrawText.java
index 329578d..9023d83 100644
--- a/src/org/zeroxlab/benchmark/CaseDrawText.java
+++ b/src/org/zeroxlab/benchmark/CaseDrawText.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/CaseGC.java b/src/org/zeroxlab/benchmark/CaseGC.java
index d26c0c6..879720e 100644
--- a/src/org/zeroxlab/benchmark/CaseGC.java
+++ b/src/org/zeroxlab/benchmark/CaseGC.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
@@ -38,7 +38,7 @@
     public static double time = 0.0;
 
     CaseGC() {
-        super("CaseGC", "org.zeroxlab.benchmark.TesterGC", 1, 1); // GC benchmark only run once
+        super("CaseGC", "org.zeroxlab.zeroxbenchmark.TesterGC", 1, 1); // GC benchmark only run once
 
         mType = "msec";
         String [] _tmp = {
diff --git a/src/org/zeroxlab/benchmark/CaseGLCube.java b/src/org/zeroxlab/benchmark/CaseGLCube.java
index d024bae..5d4a9c5 100644
--- a/src/org/zeroxlab/benchmark/CaseGLCube.java
+++ b/src/org/zeroxlab/benchmark/CaseGLCube.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/CaseJavascript.java b/src/org/zeroxlab/benchmark/CaseJavascript.java
index 3e1dcd7..43de5dc 100644
--- a/src/org/zeroxlab/benchmark/CaseJavascript.java
+++ b/src/org/zeroxlab/benchmark/CaseJavascript.java
@@ -16,7 +16,7 @@
  * Authored by Julian Chu <walkingice@0xlab.org>
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import java.util.ArrayList;
 
@@ -46,7 +46,7 @@
     protected String[] mJSResults;
 	protected String mFormattedResult;
     CaseJavascript() {
-        super("CaseJavascript", "org.zeroxlab.benchmark.TesterJavascript", sRepeat, sRound);
+        super("CaseJavascript", "org.zeroxlab.zeroxbenchmark.TesterJavascript", sRepeat, sRound);
         mType = "msec-js";
         mTags = new String[]{new String("javascript")};
     }
diff --git a/src/org/zeroxlab/benchmark/CaseNeheLesson08.java b/src/org/zeroxlab/benchmark/CaseNeheLesson08.java
index 378afe8..627c816 100644
--- a/src/org/zeroxlab/benchmark/CaseNeheLesson08.java
+++ b/src/org/zeroxlab/benchmark/CaseNeheLesson08.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/CaseNeheLesson16.java b/src/org/zeroxlab/benchmark/CaseNeheLesson16.java
index 9e257c9..4d8cccf 100644
--- a/src/org/zeroxlab/benchmark/CaseNeheLesson16.java
+++ b/src/org/zeroxlab/benchmark/CaseNeheLesson16.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/CaseScimark2.java b/src/org/zeroxlab/benchmark/CaseScimark2.java
index 4f69372..3553559 100644
--- a/src/org/zeroxlab/benchmark/CaseScimark2.java
+++ b/src/org/zeroxlab/benchmark/CaseScimark2.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
@@ -28,7 +28,7 @@
 
 import java.util.ArrayList;
 
-import org.zeroxlab.benchmark.TesterScimark2;
+import org.zeroxlab.zeroxbenchmark.TesterScimark2;
 
 public class CaseScimark2 extends Case {
 
@@ -39,7 +39,7 @@
     public static int Round  = 1;
 
     CaseScimark2() {
-        super("CaseScimark2", "org.zeroxlab.benchmark.TesterScimark2", Repeat, Round);
+        super("CaseScimark2", "org.zeroxlab.zeroxbenchmark.TesterScimark2", Repeat, Round);
 
         mType = "mflops";
         String [] _tmp = {
diff --git a/src/org/zeroxlab/benchmark/CaseTeapot.java b/src/org/zeroxlab/benchmark/CaseTeapot.java
index a050377..a163b40 100644
--- a/src/org/zeroxlab/benchmark/CaseTeapot.java
+++ b/src/org/zeroxlab/benchmark/CaseTeapot.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/benchmark/MicroBenchmark.java b/src/org/zeroxlab/benchmark/MicroBenchmark.java
index 4be2426..7a56366 100644
--- a/src/org/zeroxlab/benchmark/MicroBenchmark.java
+++ b/src/org/zeroxlab/benchmark/MicroBenchmark.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import java.io.InputStreamReader;
 import java.io.OutputStream;
diff --git a/src/org/zeroxlab/benchmark/NativeTester.java b/src/org/zeroxlab/benchmark/NativeTester.java
index ddc59f4..be98913 100644
--- a/src/org/zeroxlab/benchmark/NativeTester.java
+++ b/src/org/zeroxlab/benchmark/NativeTester.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import java.lang.Runtime;
 import java.lang.IllegalThreadStateException;
diff --git a/src/org/zeroxlab/benchmark/Report.java b/src/org/zeroxlab/benchmark/Report.java
index a88fbae..c571a52 100644
--- a/src/org/zeroxlab/benchmark/Report.java
+++ b/src/org/zeroxlab/benchmark/Report.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
@@ -91,10 +91,10 @@
     }
 
     public static String fullClassName() {
-        return "org.zeroxlab.benchmark.Report";
+        return "org.zeroxlab.zeroxbenchmark.Report";
     }
 
     public static String packageName() {
-        return "org.zeroxlab.benchmark";
+        return "org.zeroxlab.zeroxbenchmark";
     }
 }
diff --git a/src/org/zeroxlab/benchmark/Scenario.java b/src/org/zeroxlab/benchmark/Scenario.java
index 8cb3b89..ba754ef 100644
--- a/src/org/zeroxlab/benchmark/Scenario.java
+++ b/src/org/zeroxlab/benchmark/Scenario.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import java.util.Date;
 import java.util.ArrayList;
diff --git a/src/org/zeroxlab/benchmark/Tester.java b/src/org/zeroxlab/benchmark/Tester.java
index 2295c81..38e309c 100644
--- a/src/org/zeroxlab/benchmark/Tester.java
+++ b/src/org/zeroxlab/benchmark/Tester.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
@@ -32,7 +32,7 @@
 
 public abstract class Tester extends Activity {
     private String TAG;
-    public final static String PACKAGE = "org.zeroxlab.benchmark";
+    public final static String PACKAGE = "org.zeroxlab.zeroxbenchmark";
     int mRound;
     int mNow;
     int mIndex;
diff --git a/src/org/zeroxlab/benchmark/TesterArithmetic.java b/src/org/zeroxlab/benchmark/TesterArithmetic.java
index 1818021..8681ae4 100644
--- a/src/org/zeroxlab/benchmark/TesterArithmetic.java
+++ b/src/org/zeroxlab/benchmark/TesterArithmetic.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import org.zeroxlab.arithmetic.LinpackLoop;
 
diff --git a/src/org/zeroxlab/benchmark/TesterCanvas.java b/src/org/zeroxlab/benchmark/TesterCanvas.java
index 70c5f70..b1bc37c 100644
--- a/src/org/zeroxlab/benchmark/TesterCanvas.java
+++ b/src/org/zeroxlab/benchmark/TesterCanvas.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.util.Log;
 
@@ -35,7 +35,7 @@
 
 public class TesterCanvas extends Tester {
     public final String TAG = "TesterCanvas";
-    public final static String PACKAGE = "org.zeroxlab.benchmark";
+    public final static String PACKAGE = "org.zeroxlab.zeroxbenchmark";
     MyView mView;
 
     public String getTag() {
diff --git a/src/org/zeroxlab/benchmark/TesterGC.java b/src/org/zeroxlab/benchmark/TesterGC.java
index d95ac4e..ec97ed5 100644
--- a/src/org/zeroxlab/benchmark/TesterGC.java
+++ b/src/org/zeroxlab/benchmark/TesterGC.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import org.zeroxlab.gc.GCBenchmark;
 
diff --git a/src/org/zeroxlab/benchmark/TesterJavascript.java b/src/org/zeroxlab/benchmark/TesterJavascript.java
index 75dd13f..16a6c60 100644
--- a/src/org/zeroxlab/benchmark/TesterJavascript.java
+++ b/src/org/zeroxlab/benchmark/TesterJavascript.java
@@ -16,7 +16,7 @@
  * Authored by Julian Chu <walkingice@0xlab.org>
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import android.app.Activity;
 import android.os.Bundle;
diff --git a/src/org/zeroxlab/benchmark/TesterScimark2.java b/src/org/zeroxlab/benchmark/TesterScimark2.java
index f1712f3..bc516c4 100644
--- a/src/org/zeroxlab/benchmark/TesterScimark2.java
+++ b/src/org/zeroxlab/benchmark/TesterScimark2.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
 import jnt.scimark2.commandline;
 
diff --git a/src/org/zeroxlab/benchmark/Upload.java b/src/org/zeroxlab/benchmark/Upload.java
index 535947a..802ef2c 100644
--- a/src/org/zeroxlab/benchmark/Upload.java
+++ b/src/org/zeroxlab/benchmark/Upload.java
@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-package org.zeroxlab.benchmark;
+package org.zeroxlab.zeroxbenchmark;
 
-import org.zeroxlab.benchmark.MicroBenchmark;
+import org.zeroxlab.zeroxbenchmark.MicroBenchmark;
 
 import android.util.Log;
 import android.content.SharedPreferences;
@@ -187,7 +187,7 @@
             int versionCode = 0;
             int flag = 0;
             try {
-                PackageInfo pinfo = getPackageManager().getPackageInfo("org.zeroxlab.benchmark", flag);
+                PackageInfo pinfo = getPackageManager().getPackageInfo("org.zeroxlab.zeroxbenchmark", flag);
                 versionCode = pinfo.versionCode;
                 versionName = pinfo.versionName;
             }
@@ -365,11 +365,11 @@
     }
 
     public static String fullClassName() {
-        return "org.zeroxlab.benchmark.Upload";
+        return "org.zeroxlab.zeroxbenchmark.Upload";
     }
 
     public static String packageName() {
-        return "org.zeroxlab.benchmark";
+        return "org.zeroxlab.zeroxbenchmark";
     }
 
 }
diff --git a/src/org/zeroxlab/byteunix/NativeCaseUbench.java b/src/org/zeroxlab/byteunix/NativeCaseUbench.java
index b9175e5..e7272ea 100644
--- a/src/org/zeroxlab/byteunix/NativeCaseUbench.java
+++ b/src/org/zeroxlab/byteunix/NativeCaseUbench.java
@@ -19,7 +19,7 @@
 
 package org.zeroxlab.byteunix;
 
-import org.zeroxlab.benchmark.*;
+import org.zeroxlab.zeroxbenchmark.*;
 
 import android.util.Log;
 
diff --git a/src/org/zeroxlab/byteunix/NativeTesterUbench.java b/src/org/zeroxlab/byteunix/NativeTesterUbench.java
index ca9440d..0255188 100644
--- a/src/org/zeroxlab/byteunix/NativeTesterUbench.java
+++ b/src/org/zeroxlab/byteunix/NativeTesterUbench.java
@@ -19,7 +19,7 @@
 
 package org.zeroxlab.byteunix;
 
-import org.zeroxlab.benchmark.*;
+import org.zeroxlab.zeroxbenchmark.*;
 
 import android.os.Bundle;
 import android.content.Intent;
diff --git a/src/org/zeroxlab/gc/GCBenchmark.java b/src/org/zeroxlab/gc/GCBenchmark.java
index cce6c85..e314261 100644
--- a/src/org/zeroxlab/gc/GCBenchmark.java
+++ b/src/org/zeroxlab/gc/GCBenchmark.java
@@ -46,7 +46,7 @@
 
 package org.zeroxlab.gc;
 
-import org.zeroxlab.benchmark.TesterGC;
+import org.zeroxlab.zeroxbenchmark.TesterGC;
 
 import android.os.Message;
 
diff --git a/src/org/zeroxlab/graphics/DrawArc.java b/src/org/zeroxlab/graphics/DrawArc.java
index 1ee495a..36e150e 100644
--- a/src/org/zeroxlab/graphics/DrawArc.java
+++ b/src/org/zeroxlab/graphics/DrawArc.java
@@ -16,9 +16,9 @@
 
 package org.zeroxlab.graphics;
 
-import org.zeroxlab.benchmark.R;
+import org.zeroxlab.zeroxbenchmark.R;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/src/org/zeroxlab/graphics/DrawCircle.java b/src/org/zeroxlab/graphics/DrawCircle.java
index 93daea6..800c35a 100644
--- a/src/org/zeroxlab/graphics/DrawCircle.java
+++ b/src/org/zeroxlab/graphics/DrawCircle.java
@@ -16,7 +16,7 @@
 
 package org.zeroxlab.graphics;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/src/org/zeroxlab/graphics/DrawCircle2.java b/src/org/zeroxlab/graphics/DrawCircle2.java
index 1fa7757..0d64e08 100644
--- a/src/org/zeroxlab/graphics/DrawCircle2.java
+++ b/src/org/zeroxlab/graphics/DrawCircle2.java
@@ -16,9 +16,9 @@
 
 package org.zeroxlab.graphics;
 
-import org.zeroxlab.benchmark.R;
+import org.zeroxlab.zeroxbenchmark.R;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/src/org/zeroxlab/graphics/DrawImage.java b/src/org/zeroxlab/graphics/DrawImage.java
index a5c8581..799749b 100644
--- a/src/org/zeroxlab/graphics/DrawImage.java
+++ b/src/org/zeroxlab/graphics/DrawImage.java
@@ -16,9 +16,9 @@
 
 package org.zeroxlab.graphics;
 
-import org.zeroxlab.benchmark.R;
+import org.zeroxlab.zeroxbenchmark.R;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/src/org/zeroxlab/graphics/DrawImageView.java b/src/org/zeroxlab/graphics/DrawImageView.java
index ac144ea..ec45849 100644
--- a/src/org/zeroxlab/graphics/DrawImageView.java
+++ b/src/org/zeroxlab/graphics/DrawImageView.java
@@ -16,7 +16,7 @@
 
 package org.zeroxlab.graphics;
 
-import org.zeroxlab.benchmark.R;
+import org.zeroxlab.zeroxbenchmark.R;
 
 import android.content.Context;
 import android.content.res.Resources;
diff --git a/src/org/zeroxlab/graphics/DrawRect.java b/src/org/zeroxlab/graphics/DrawRect.java
index bbd303e..26b8779 100644
--- a/src/org/zeroxlab/graphics/DrawRect.java
+++ b/src/org/zeroxlab/graphics/DrawRect.java
@@ -16,9 +16,9 @@
 
 package org.zeroxlab.graphics;
 
-import org.zeroxlab.benchmark.R;
+import org.zeroxlab.zeroxbenchmark.R;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/src/org/zeroxlab/graphics/DrawText.java b/src/org/zeroxlab/graphics/DrawText.java
index c00c09e..61d1451 100644
--- a/src/org/zeroxlab/graphics/DrawText.java
+++ b/src/org/zeroxlab/graphics/DrawText.java
@@ -16,9 +16,9 @@
 
 package org.zeroxlab.graphics;
 
-import org.zeroxlab.benchmark.R;
+import org.zeroxlab.zeroxbenchmark.R;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/src/org/zeroxlab/kubench/GLSurfaceView.java b/src/org/zeroxlab/kubench/GLSurfaceView.java
index 953379e..3798958 100644
--- a/src/org/zeroxlab/kubench/GLSurfaceView.java
+++ b/src/org/zeroxlab/kubench/GLSurfaceView.java
@@ -16,7 +16,7 @@
 
 package org.zeroxlab.kubench;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.app.Activity;
 import android.content.Context;
diff --git a/src/org/zeroxlab/kubench/Kubench.java b/src/org/zeroxlab/kubench/Kubench.java
index 252f616..1143aac 100644
--- a/src/org/zeroxlab/kubench/Kubench.java
+++ b/src/org/zeroxlab/kubench/Kubench.java
@@ -16,7 +16,7 @@
 
 package org.zeroxlab.kubench;
 
-import org.zeroxlab.benchmark.Tester;
+import org.zeroxlab.zeroxbenchmark.Tester;
 
 import android.app.Activity;
 import android.graphics.PixelFormat;
diff --git a/src/org/zeroxlab/utils/BenchUtil.java b/src/org/zeroxlab/utils/BenchUtil.java
index a45a3de..ba8fde8 100644
--- a/src/org/zeroxlab/utils/BenchUtil.java
+++ b/src/org/zeroxlab/utils/BenchUtil.java
@@ -26,7 +26,7 @@
 
 public class BenchUtil extends Util {
 
-    public final static String ACTIVITY_SETTINGS = "org.zeroxlab.benchmark.ActivitySettings";
+    public final static String ACTIVITY_SETTINGS = "org.zeroxlab.zeroxbenchmark.ActivitySettings";
     public final static String PREF_FILENAME = "ZeroxBench_Preference";
     public final static String KEY_RESULT_CUSTOM_DIR = "KEY_RESULT_CUSTOM_DIR";
     public final static String KEY_RESULT_SELECTION = "KEY_RESULT_SELECTION";
