diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 353bb61..d746513 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -130,6 +130,16 @@
 	<action android:name="android.intent.action.MAIN" />
 	</intent-filter>
 	</activity>
+
+	<activity
+	android:name="org.zeroxlab.byteunix.NativeTesterUbench"
+	android:screenOrientation="portrait"
+	>
+	<intent-filter>
+	<action android:name="android.intent.action.MAIN" />
+	</intent-filter>
+	</activity>
+
     </application>
     <uses-sdk android:minSdkVersion="7" />
 </manifest>
diff --git a/native/Android.mk b/native/Android.mk
index bf27a27..24eddc2 100644
--- a/native/Android.mk
+++ b/native/Android.mk
@@ -19,3 +19,5 @@
 include $(CLEAR_VARS)
 
 include $(TOP_LOCAL_PATH)/libMicro-0.4.0/Android.mk
+include $(TOP_LOCAL_PATH)/unixbench-5.1.2/Android.mk
+
diff --git a/native/unixbench-5.1.2/src/execl.c b/native/unixbench-5.1.2/src/execl.c
index 9b60b6a..3b736a1 100644
--- a/native/unixbench-5.1.2/src/execl.c
+++ b/native/unixbench-5.1.2/src/execl.c
@@ -35,10 +35,11 @@
 
 #undef main
 
+#include "socket.c"
+
 /* added by BYTE */
 char *getenv();
 
-
 int main(argc, argv)	/* the real program */
 int	argc;
 char	*argv[];
@@ -90,6 +91,13 @@
 	time(&this_time);
 	if (this_time - start_time >= duration) { /* time has run out */
 		fprintf(stderr, "COUNT|%lu|1|lps\n", iter);
+        fprintf(stderr, "TIME|%lu\n", this_time - start_time);
+        init_socket();
+        char buff[BUFFER_SIZE];
+        sprintf(buff, "COUNT|%lu|1|lps|%lu\n", iter, this_time - start_time);
+        send_socket(buff);
+        close_socket();
+
 		exit(0);
 		}
 	execl(fullpath, fullpath, "0", dur_str, count_str, start_str, (void *) 0);
diff --git a/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java b/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java
index 108e490..ce5f307 100644
--- a/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java
+++ b/src/org/opensolaris/hub/libmicro/NativeCaseMicro.java
@@ -101,7 +101,7 @@
             if(name == null || results == null)
                 continue;
             ArrayList<String> _mTags = new ArrayList<String>();
-            _mTags.add((String)("exe:" + command.substring(command.indexOf("_")+1, command.indexOf(" "))));
+            _mTags.add((String)("exe:" + command.substring(0, command.indexOf(" "))));
 //            String [] _tmp = command.split(" +-");
 //            for(int i=1; i<_tmp.length; i++){
 //                if(_tmp[i].matches("[NECLSW].*"))
diff --git a/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java b/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java
index 094c25a..a49e6b6 100644
--- a/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java
+++ b/src/org/opensolaris/hub/libmicro/NativeTesterMicro.java
@@ -32,346 +32,345 @@
     public static final String REPORT = "REPORT";
     public static final String RESULT = "RESULT";
     private static final String Opts = "-E -C 70 -L -S -W";
-    private static final String Path = "/system/bin/bench_";
     public static final List<String> COMMANDS  = Arrays.asList(
 
-        Path + "getpid " + Opts + " -N getpid -I 5",
+        "getpid " + Opts + " -N getpid -I 5",
 
-        Path + "getenv " + Opts + " -N getenv   -s 100 -I 100",
-        Path + "getenv " + Opts + " -N getenvT2   -s 100 -I 100 -T 2",
+        "getenv " + Opts + " -N getenv   -s 100 -I 100",
+        "getenv " + Opts + " -N getenvT2   -s 100 -I 100 -T 2",
 
-        Path + "gettimeofday " + Opts + " -N gettimeofday",
+        "gettimeofday " + Opts + " -N gettimeofday",
 
-        Path + "log " + Opts + " -N log  -I 20",
+        "log " + Opts + " -N log  -I 20",
 
-        Path + "exp " + Opts + " -N exp  -I 20",
+        "exp " + Opts + " -N exp  -I 20",
 
-        Path + "lrand48 " + Opts + " -N lrand48",
+        "lrand48 " + Opts + " -N lrand48",
 
-        Path + "memset " + Opts + " -N memset_10	-s 10	-I 10 ",
-        Path + "memset " + Opts + " -N memset_256	-s 256	-I 20",
-        Path + "memset " + Opts + " -N memset_256_u	-s 256	 -a 1 -I 20 ",
-        Path + "memset " + Opts + " -N memset_1k	-s 1k	 -I 100",
-        Path + "memset " + Opts + " -N memset_4k    -s 4k    -I 250",
-        Path + "memset " + Opts + " -N memset_4k_uc -s 4k    -u -I 400",
-        Path + "memset " + Opts + " -N memset_10k	-s 10k	-I 600	 ",
-        Path + "memset " + Opts + " -N memset_1m	-s 1m	-I 200000",
-//        Path + "memset " + Opts + " -N memset_10m	-s 10m -I 2000000 ",
-//        Path + "memset " + Opts + " -N memsetP2_10m	-s 10m -P 2 -I 2000000 ",
+        "memset " + Opts + " -N memset_10	-s 10	-I 10 ",
+        "memset " + Opts + " -N memset_256	-s 256	-I 20",
+        "memset " + Opts + " -N memset_256_u	-s 256	 -a 1 -I 20 ",
+        "memset " + Opts + " -N memset_1k	-s 1k	 -I 100",
+        "memset " + Opts + " -N memset_4k    -s 4k    -I 250",
+        "memset " + Opts + " -N memset_4k_uc -s 4k    -u -I 400",
+        "memset " + Opts + " -N memset_10k	-s 10k	-I 600	 ",
+        "memset " + Opts + " -N memset_1m	-s 1m	-I 200000",
+//        "memset " + Opts + " -N memset_10m	-s 10m -I 2000000 ",
+//        "memset " + Opts + " -N memsetP2_10m	-s 10m -P 2 -I 2000000 ",
 
-//        Path + "memrand " + Opts + " -N memrand	-s 128m -B 10000",
+//        "memrand " + Opts + " -N memrand	-s 128m -B 10000",
 
-        Path + "isatty " + Opts + " -N isatty_yes   ",
-//        Path + "isatty " + Opts + " -N isatty_no  -f $IFILE",
+        "isatty " + Opts + " -N isatty_yes   ",
+//        "isatty " + Opts + " -N isatty_no  -f $IFILE",
 
-        Path + "malloc " + Opts + " -N malloc_10    -s 10    -g 10 -I 50",
-        Path + "malloc " + Opts + " -N malloc_100   -s 100   -g 10 -I 50",
-        Path + "malloc " + Opts + " -N malloc_1k    -s 1k    -g 10 -I 50",
-        Path + "malloc " + Opts + " -N malloc_10k   -s 10k   -g 10 -I 50",
-        Path + "malloc " + Opts + " -N malloc_100k  -s 100k  -g 10 -I 2000",
+        "malloc " + Opts + " -N malloc_10    -s 10    -g 10 -I 50",
+        "malloc " + Opts + " -N malloc_100   -s 100   -g 10 -I 50",
+        "malloc " + Opts + " -N malloc_1k    -s 1k    -g 10 -I 50",
+        "malloc " + Opts + " -N malloc_10k   -s 10k   -g 10 -I 50",
+        "malloc " + Opts + " -N malloc_100k  -s 100k  -g 10 -I 2000",
 
-        Path + "malloc " + Opts + " -N mallocT2_10    -s 10   -g 10 -T 2 -I 200",
-        Path + "malloc " + Opts + " -N mallocT2_100   -s 100  -g 10 -T 2 -I 200",
-        Path + "malloc " + Opts + " -N mallocT2_1k    -s 1k   -g 10 -T 2 -I 200",
-        Path + "malloc " + Opts + " -N mallocT2_10k   -s 10k  -g 10 -T 2 -I 200",
-        Path + "malloc " + Opts + " -N mallocT2_100k  -s 100k -g 10 -T 2 -I 10000",
+        "malloc " + Opts + " -N mallocT2_10    -s 10   -g 10 -T 2 -I 200",
+        "malloc " + Opts + " -N mallocT2_100   -s 100  -g 10 -T 2 -I 200",
+        "malloc " + Opts + " -N mallocT2_1k    -s 1k   -g 10 -T 2 -I 200",
+        "malloc " + Opts + " -N mallocT2_10k   -s 10k  -g 10 -T 2 -I 200",
+        "malloc " + Opts + " -N mallocT2_100k  -s 100k -g 10 -T 2 -I 10000",
 
-        Path + "close " + Opts + " -N close_bad		-B 32		-b",
-//        Path + "close " + Opts + " -N close_tmp		-B 32		-f $TFILE",
-//        Path + "close " + Opts + " -N close_usr		-B 32		-f $VFILE",
-        Path + "close " + Opts + " -N close_zero		-B 32		-f /dev/zero",
+        "close " + Opts + " -N close_bad		-B 32		-b",
+//        "close " + Opts + " -N close_tmp		-B 32		-f $TFILE",
+//        "close " + Opts + " -N close_usr		-B 32		-f $VFILE",
+        "close " + Opts + " -N close_zero		-B 32		-f /dev/zero",
 
-        Path + "memcpy " + Opts + " -N memcpy_10	-s 10	-I 10 ",
-        Path + "memcpy " + Opts + " -N memcpy_1k	-s 1k	-I 50",
-        Path + "memcpy " + Opts + " -N memcpy_10k	-s 10k	-I 800",
-//        Path + "memcpy " + Opts + " -N memcpy_1m	-s 1m   -I 500000",
-//        Path + "memcpy " + Opts + " -N memcpy_10m	-s 10m  -I 5000000",
+        "memcpy " + Opts + " -N memcpy_10	-s 10	-I 10 ",
+        "memcpy " + Opts + " -N memcpy_1k	-s 1k	-I 50",
+        "memcpy " + Opts + " -N memcpy_10k	-s 10k	-I 800",
+//        "memcpy " + Opts + " -N memcpy_1m	-s 1m   -I 500000",
+//        "memcpy " + Opts + " -N memcpy_10m	-s 10m  -I 5000000",
 
-        Path + "strcpy " + Opts + " -N strcpy_10	-s 10   -I 5 ",
-        Path + "strcpy " + Opts + " -N strcpy_1k	-s 1k   -I 100",
+        "strcpy " + Opts + " -N strcpy_10	-s 10   -I 5 ",
+        "strcpy " + Opts + " -N strcpy_1k	-s 1k   -I 100",
 
-        Path + "strlen " + Opts + " -N strlen_10	-s 10   -I 5",
-        Path + "strlen " + Opts + " -N strlen_1k	-s 1k   -I 100",
+        "strlen " + Opts + " -N strlen_10	-s 10   -I 5",
+        "strlen " + Opts + " -N strlen_1k	-s 1k   -I 100",
 
-        Path + "strchr " + Opts + " -N strchr_10	-s 10   -I 5",
-        Path + "strchr " + Opts + " -N strchr_1k	-s 1k   -I 200",
-        Path + "strcmp " + Opts + " -N strcmp_10	-s 10   -I 10",
-        Path + "strcmp " + Opts + " -N strcmp_1k	-s 1k   -I 200",
+        "strchr " + Opts + " -N strchr_10	-s 10   -I 5",
+        "strchr " + Opts + " -N strchr_1k	-s 1k   -I 200",
+        "strcmp " + Opts + " -N strcmp_10	-s 10   -I 10",
+        "strcmp " + Opts + " -N strcmp_1k	-s 1k   -I 200",
 
-        Path + "strcasecmp " + Opts + " -N scasecmp_10	-s 10 -I 50",
-        Path + "strcasecmp " + Opts + " -N scasecmp_1k	-s 1k -I 20000",
+        "strcasecmp " + Opts + " -N scasecmp_10	-s 10 -I 50",
+        "strcasecmp " + Opts + " -N scasecmp_1k	-s 1k -I 20000",
 
-        Path + "strtol " + Opts + " -N strtol      -I 20      ",
+        "strtol " + Opts + " -N strtol      -I 20      ",
 
-        Path + "mutex " + Opts + " -N mutex_st	-I 10",
-        Path + "mutex " + Opts + " -N mutex_mt	-t -I 10	",
-        Path + "mutex " + Opts + " -N mutex_T2     -T 2  -I 100",
+        "mutex " + Opts + " -N mutex_st	-I 10",
+        "mutex " + Opts + " -N mutex_mt	-t -I 10	",
+        "mutex " + Opts + " -N mutex_T2     -T 2  -I 100",
 
-//        Path + "longjmp " + Opts + " -N longjmp	-I 10",
-//        Path + "siglongjmp " + Opts + " -N siglongjmp	-I 20",
+//        "longjmp " + Opts + " -N longjmp	-I 10",
+//        "siglongjmp " + Opts + " -N siglongjmp	-I 20",
 
-        Path + "getrusage " + Opts + " -N getrusage	-I 200",
+        "getrusage " + Opts + " -N getrusage	-I 200",
 
-        Path + "times " + Opts + " -N times	-I 200",
-        Path + "time " + Opts + " -N time		-I 50",
-        Path + "localtime_r " + Opts + " -N localtime_r	-I 200  ",
-        Path + "strftime " + Opts + " -N strftime -I 10000  ",
+        "times " + Opts + " -N times	-I 200",
+        "time " + Opts + " -N time		-I 50",
+        "localtime_r " + Opts + " -N localtime_r	-I 200  ",
+        "strftime " + Opts + " -N strftime -I 10000  ",
 
-        Path + "mktime " + Opts + " -N mktime       -I 500   ",
-        Path + "mktime " + Opts + " -N mktimeT2 -T 2 -I 1000 ",
+        "mktime " + Opts + " -N mktime       -I 500   ",
+        "mktime " + Opts + " -N mktimeT2 -T 2 -I 1000 ",
 
-//        Path + "cascade_mutex " + Opts + " -N c_mutex_1	-I 50",
-//        Path + "cascade_mutex " + Opts + " -N c_mutex_10	-T 10 -I 5000",
-//        Path + "cascade_mutex " + Opts + " -N c_mutex_200	-T 200	-I 2000000",
+//        "cascade_mutex " + Opts + " -N c_mutex_1	-I 50",
+//        "cascade_mutex " + Opts + " -N c_mutex_10	-T 10 -I 5000",
+//        "cascade_mutex " + Opts + " -N c_mutex_200	-T 200	-I 2000000",
 
-//        Path + "cascade_cond " + Opts + " -N c_cond_1	-I 100",
-//        Path + "cascade_cond " + Opts + " -N c_cond_10	-T 10	-I 3000",
-//        Path + "cascade_cond " + Opts + " -N c_cond_200	-T 200	-I 2000000",
+//        "cascade_cond " + Opts + " -N c_cond_1	-I 100",
+//        "cascade_cond " + Opts + " -N c_cond_10	-T 10	-I 3000",
+//        "cascade_cond " + Opts + " -N c_cond_200	-T 200	-I 2000000",
 
-        Path + "cascade_flock " + Opts + " -N c_flock	-I 1000	",
-        Path + "cascade_flock " + Opts + " -N c_flock_10	-P 10   -I 50000",
-        Path + "cascade_flock " + Opts + " -N c_flock_200	-P 200	-I 5000000",
+        "cascade_flock " + Opts + " -N c_flock	-I 1000	",
+        "cascade_flock " + Opts + " -N c_flock_10	-P 10   -I 50000",
+        "cascade_flock " + Opts + " -N c_flock_200	-P 200	-I 5000000",
 
-        Path + "cascade_fcntl " + Opts + " -N c_fcntl_1	-I 2000 	",
-        Path + "cascade_fcntl " + Opts + " -N c_fcntl_10	-P 10 -I 20000",
-        Path + "cascade_fcntl " + Opts + " -N c_fcntl_200	-P 200	-I 5000000",
+        "cascade_fcntl " + Opts + " -N c_fcntl_1	-I 2000 	",
+        "cascade_fcntl " + Opts + " -N c_fcntl_10	-P 10 -I 20000",
+        "cascade_fcntl " + Opts + " -N c_fcntl_200	-P 200	-I 5000000",
 
-        Path + "file_lock " + Opts + " -N file_lock   -I 1000         ",
+        "file_lock " + Opts + " -N file_lock   -I 1000         ",
 
-        Path + "getsockname " + Opts + " -N getsockname	-I 100",
-        Path + "getpeername " + Opts + " -N getpeername	-I 100",
+        "getsockname " + Opts + " -N getsockname	-I 100",
+        "getpeername " + Opts + " -N getpeername	-I 100",
 
-//        Path + "chdir " + Opts + " -N chdir_tmp	-I 2000		$TDIR1 $TDIR2",
-//        Path + "chdir " + Opts + " -N chdir_usr	-I 2000		$VDIR1 $VDIR2",
+//        "chdir " + Opts + " -N chdir_tmp	-I 2000		$TDIR1 $TDIR2",
+//        "chdir " + Opts + " -N chdir_usr	-I 2000		$VDIR1 $VDIR2",
 //
-//        Path + "chdir " + Opts + " -N chgetwd_tmp	-I 3000	-g $TDIR1 $TDIR2",
-//        Path + "chdir " + Opts + " -N chgetwd_usr	-I 3000	-g $VDIR1 $VDIR2",
+//        "chdir " + Opts + " -N chgetwd_tmp	-I 3000	-g $TDIR1 $TDIR2",
+//        "chdir " + Opts + " -N chgetwd_usr	-I 3000	-g $VDIR1 $VDIR2",
 //
-//        Path + "realpath " + Opts + " -N realpath_tmp -I 3000		-f $TDIR1",
-//        Path + "realpath " + Opts + " -N realpath_usr	-I 3000	-f $VDIR1",
+//        "realpath " + Opts + " -N realpath_tmp -I 3000		-f $TDIR1",
+//        "realpath " + Opts + " -N realpath_usr	-I 3000	-f $VDIR1",
 //
-//        Path + "stat " + Opts + " -N stat_tmp -I 1000		-f $TFILE",
-//        Path + "stat " + Opts + " -N stat_usr -I 1000		-f $VFILE",
+//        "stat " + Opts + " -N stat_tmp -I 1000		-f $TFILE",
+//        "stat " + Opts + " -N stat_usr -I 1000		-f $VFILE",
 
-//        Path + "fcntl " + Opts + " -N fcntl_tmp	-I 100	-f $TFILE",
-//        Path + "fcntl " + Opts + " -N fcntl_usr	-I 100	-f $VFILE",
-        Path + "fcntl_ndelay " + Opts + " -N fcntl_ndelay	-I 100	",
+//        "fcntl " + Opts + " -N fcntl_tmp	-I 100	-f $TFILE",
+//        "fcntl " + Opts + " -N fcntl_usr	-I 100	-f $VFILE",
+        "fcntl_ndelay " + Opts + " -N fcntl_ndelay	-I 100	",
 
-//        Path + "lseek " + Opts + " -N lseek_t8k	-s 8k	-I 50	-f $TFILE",
-//        Path + "lseek " + Opts + " -N lseek_u8k	-s 8k	-I 50	-f $VFILE",
+//        "lseek " + Opts + " -N lseek_t8k	-s 8k	-I 50	-f $TFILE",
+//        "lseek " + Opts + " -N lseek_u8k	-s 8k	-I 50	-f $VFILE",
 
-//        Path + "open " + Opts + " -N open_tmp		-B 256		-f $TFILE",
-//        Path + "open " + Opts + " -N open_usr		-B 256		-f $VFILE",
-        Path + "open " + Opts + " -N open_zero		-B 256		-f /dev/zero",
+//        "open " + Opts + " -N open_tmp		-B 256		-f $TFILE",
+//        "open " + Opts + " -N open_usr		-B 256		-f $VFILE",
+        "open " + Opts + " -N open_zero		-B 256		-f /dev/zero",
 
-        Path + "dup " + Opts + " -N dup			-B 512   ",
+        "dup " + Opts + " -N dup			-B 512   ",
 
-        Path + "socket " + Opts + " -N socket_u		-B 256",
-        Path + "socket " + Opts + " -N socket_i		-B 256		-f PF_INET",
+        "socket " + Opts + " -N socket_u		-B 256",
+        "socket " + Opts + " -N socket_i		-B 256		-f PF_INET",
 
-        Path + "socketpair " + Opts + " -N socketpair		-B 256",
+        "socketpair " + Opts + " -N socketpair		-B 256",
 
-        Path + "setsockopt " + Opts + " -N setsockopt		-I 200",
+        "setsockopt " + Opts + " -N setsockopt		-I 200",
 
-        Path + "bind " + Opts + " -N bind			-B 100",
+        "bind " + Opts + " -N bind			-B 100",
 
-        Path + "listen " + Opts + " -N listen		-B 100",
+        "listen " + Opts + " -N listen		-B 100",
 
-//        Path + "connection " + Opts + " -N connection		-B 256 ",
+//        "connection " + Opts + " -N connection		-B 256 ",
 
-        Path + "poll " + Opts + " -N poll_10	-n 10	-I 500",
-        Path + "poll " + Opts + " -N poll_100	-n 100	-I 1000",
-        Path + "poll " + Opts + " -N poll_1000	-n 1000	-I 5000",
+        "poll " + Opts + " -N poll_10	-n 10	-I 500",
+        "poll " + Opts + " -N poll_100	-n 100	-I 1000",
+        "poll " + Opts + " -N poll_1000	-n 1000	-I 5000",
 
-        Path + "poll " + Opts + " -N poll_w10	-n 10	-I 500		-w 1",
-        Path + "poll " + Opts + " -N poll_w100	-n 100	-I 2000		-w 10",
-        Path + "poll " + Opts + " -N poll_w1000	-n 1000	-I 40000	-w 100",
+        "poll " + Opts + " -N poll_w10	-n 10	-I 500		-w 1",
+        "poll " + Opts + " -N poll_w100	-n 100	-I 2000		-w 10",
+        "poll " + Opts + " -N poll_w1000	-n 1000	-I 40000	-w 100",
 
-        Path + "select " + Opts + " -N select_10	-n 10	-I 500",
-        Path + "select " + Opts + " -N select_100	-n 100	-I 1000",
-        Path + "select " + Opts + " -N select_1000	-n 1000	-I 5000",
+        "select " + Opts + " -N select_10	-n 10	-I 500",
+        "select " + Opts + " -N select_100	-n 100	-I 1000",
+        "select " + Opts + " -N select_1000	-n 1000	-I 5000",
 
-        Path + "select " + Opts + " -N select_w10	-n 10	-I 500		-w 1",
-        Path + "select " + Opts + " -N select_w100	-n 100	-I 2000		-w 10",
-        Path + "select " + Opts + " -N select_w1000	-n 1000	-I 40000        -w 100",
+        "select " + Opts + " -N select_w10	-n 10	-I 500		-w 1",
+        "select " + Opts + " -N select_w100	-n 100	-I 2000		-w 10",
+        "select " + Opts + " -N select_w1000	-n 1000	-I 40000        -w 100",
 
-        Path + "sigaction " + Opts + " -N sigaction -I 100",
-        Path + "signal " + Opts + " -N signal -I 1000",
-        Path + "sigprocmask " + Opts + " -N sigprocmask -I 200",
+        "sigaction " + Opts + " -N sigaction -I 100",
+        "signal " + Opts + " -N signal -I 1000",
+        "sigprocmask " + Opts + " -N sigprocmask -I 200",
 
-        Path + "pthread_create   " + Opts + " -N pthread_8		-B 8",
-        Path + "pthread_create   " + Opts + " -N pthread_32		-B 32",
-        Path + "pthread_create   " + Opts + " -N pthread_128		-B 128",
-//        Path + "pthread_create   " + Opts + " -N pthread_512		-B 512",
+        "pthread_create   " + Opts + " -N pthread_8		-B 8",
+        "pthread_create   " + Opts + " -N pthread_32		-B 32",
+        "pthread_create   " + Opts + " -N pthread_128		-B 128",
+//        "pthread_create   " + Opts + " -N pthread_512		-B 512",
 
-        Path + "fork " + Opts + " -N fork_10		-B 10",
-        Path + "fork " + Opts + " -N fork_100		-B 100  -C 100",
-//        Path + "fork " + Opts + " -N fork_1000		-B 1000 -C 50",
+        "fork " + Opts + " -N fork_10		-B 10",
+        "fork " + Opts + " -N fork_100		-B 100  -C 100",
+//        "fork " + Opts + " -N fork_1000		-B 1000 -C 50",
 
-        Path + "exit " + Opts + " -N exit_10		-B 10",
-        Path + "exit " + Opts + " -N exit_100		-B 100",
-//        Path + "exit " + Opts + " -N exit_1000		-B 1000 -C 50",
+        "exit " + Opts + " -N exit_10		-B 10",
+        "exit " + Opts + " -N exit_100		-B 100",
+//        "exit " + Opts + " -N exit_1000		-B 1000 -C 50",
 
-        Path + "exit " + Opts + " -N exit_10_nolibc	-e -B 10",
+        "exit " + Opts + " -N exit_10_nolibc	-e -B 10",
 
-        Path + "exec " + Opts + " -N exec -B 10",
+        "exec " + Opts + " -N exec -B 10",
 
-        Path + "system " + Opts + " -N system -I 1000000",
+        "system " + Opts + " -N system -I 1000000",
 
-        Path + "recurse " + Opts + " -N recurse		-B 512",
+        "recurse " + Opts + " -N recurse		-B 512",
 
-//        Path + "read " + Opts + " -N read_t1k	-s 1k			-f $TFILE",
-//        Path + "read " + Opts + " -N read_t10k	-s 10k			-f $TFILE",
-//        Path + "read " + Opts + " -N read_t100k	-s 100k			-f $TFILE",
+//        "read " + Opts + " -N read_t1k	-s 1k			-f $TFILE",
+//        "read " + Opts + " -N read_t10k	-s 10k			-f $TFILE",
+//        "read " + Opts + " -N read_t100k	-s 100k			-f $TFILE",
 
-//        Path + "read " + Opts + " -N read_u1k	-s 1k			-f $VFILE",
-//        Path + "read " + Opts + " -N read_u10k	-s 10k			-f $VFILE",
-//        Path + "read " + Opts + " -N read_u100k	-s 100k			-f $VFILE",
+//        "read " + Opts + " -N read_u1k	-s 1k			-f $VFILE",
+//        "read " + Opts + " -N read_u10k	-s 10k			-f $VFILE",
+//        "read " + Opts + " -N read_u100k	-s 100k			-f $VFILE",
 
-        Path + "read " + Opts + " -N read_z1k	-s 1k			-f /dev/zero ",
-        Path + "read " + Opts + " -N read_z10k	-s 10k			-f /dev/zero ",
-        Path + "read " + Opts + " -N read_z100k	-s 100k			-f /dev/zero ",
-        Path + "read " + Opts + " -N read_zw100k	-s 100k	         -w	-f /dev/zero ",
+        "read " + Opts + " -N read_z1k	-s 1k			-f /dev/zero ",
+        "read " + Opts + " -N read_z10k	-s 10k			-f /dev/zero ",
+        "read " + Opts + " -N read_z100k	-s 100k			-f /dev/zero ",
+        "read " + Opts + " -N read_zw100k	-s 100k	         -w	-f /dev/zero ",
 
-//        Path + "write " + Opts + " -N write_t1k	-s 1k			-f $TFILE",
-//        Path + "write " + Opts + " -N write_t10k	-s 10k			-f $TFILE",
-//        Path + "write " + Opts + " -N write_t100k	-s 100k			-f $TFILE",
+//        "write " + Opts + " -N write_t1k	-s 1k			-f $TFILE",
+//        "write " + Opts + " -N write_t10k	-s 10k			-f $TFILE",
+//        "write " + Opts + " -N write_t100k	-s 100k			-f $TFILE",
 
-//        Path + "write " + Opts + " -N write_u1k	-s 1k			-f $VFILE",
-//        Path + "write " + Opts + " -N write_u10k	-s 10k			-f $VFILE",
-//        Path + "write " + Opts + " -N write_u100k	-s 100k			-f $VFILE",
+//        "write " + Opts + " -N write_u1k	-s 1k			-f $VFILE",
+//        "write " + Opts + " -N write_u10k	-s 10k			-f $VFILE",
+//        "write " + Opts + " -N write_u100k	-s 100k			-f $VFILE",
 
-        Path + "write " + Opts + " -N write_n1k	-s 1k	-I 100 -B 0	-f /dev/null ",
-        Path + "write " + Opts + " -N write_n10k	-s 10k	-I 100 -B 0	-f /dev/null ",
-        Path + "write " + Opts + " -N write_n100k	-s 100k	-I 100 -B 0	-f /dev/null ",
+        "write " + Opts + " -N write_n1k	-s 1k	-I 100 -B 0	-f /dev/null ",
+        "write " + Opts + " -N write_n10k	-s 10k	-I 100 -B 0	-f /dev/null ",
+        "write " + Opts + " -N write_n100k	-s 100k	-I 100 -B 0	-f /dev/null ",
 
-//        Path + "writev " + Opts + " -N writev_t1k	-s 1k			-f $TFILE",
-//        Path + "writev " + Opts + " -N writev_t10k	-s 10k		        -f $TFILE",
-//        Path + "writev " + Opts + " -N writev_t100k	-s 100k			-f $TFILE",
+//        "writev " + Opts + " -N writev_t1k	-s 1k			-f $TFILE",
+//        "writev " + Opts + " -N writev_t10k	-s 10k		        -f $TFILE",
+//        "writev " + Opts + " -N writev_t100k	-s 100k			-f $TFILE",
 
-//        Path + "writev " + Opts + " -N writev_u1k	-s 1k			-f $VFILE",
-//        Path + "writev " + Opts + " -N writev_u10k	-s 10k			-f $VFILE",
-//        Path + "writev " + Opts + " -N writev_u100k	-s 100k			-f $VFILE",
+//        "writev " + Opts + " -N writev_u1k	-s 1k			-f $VFILE",
+//        "writev " + Opts + " -N writev_u10k	-s 10k			-f $VFILE",
+//        "writev " + Opts + " -N writev_u100k	-s 100k			-f $VFILE",
 
-        Path + "writev " + Opts + " -N writev_n1k	-s 1k	-I 100 -B 0	-f /dev/null ",
-        Path + "writev " + Opts + " -N writev_n10k	-s 10k	-I 100 -B 0	-f /dev/null ",
-        Path + "writev " + Opts + " -N writev_n100k	-s 100k	-I 100 -B 0	-f /dev/null ",
+        "writev " + Opts + " -N writev_n1k	-s 1k	-I 100 -B 0	-f /dev/null ",
+        "writev " + Opts + " -N writev_n10k	-s 10k	-I 100 -B 0	-f /dev/null ",
+        "writev " + Opts + " -N writev_n100k	-s 100k	-I 100 -B 0	-f /dev/null ",
 
-//        Path + "pread " + Opts + " -N pread_t1k	-s 1k	-I 300		-f $TFILE",
-//        Path + "pread " + Opts + " -N pread_t10k	-s 10k	-I 1000		-f $TFILE",
-//        Path + "pread " + Opts + " -N pread_t100k	-s 100k	-I 10000	-f $TFILE",
+//        "pread " + Opts + " -N pread_t1k	-s 1k	-I 300		-f $TFILE",
+//        "pread " + Opts + " -N pread_t10k	-s 10k	-I 1000		-f $TFILE",
+//        "pread " + Opts + " -N pread_t100k	-s 100k	-I 10000	-f $TFILE",
 
-//        Path + "pread " + Opts + " -N pread_u1k	-s 1k	-I 300		-f $VFILE",
-//        Path + "pread " + Opts + " -N pread_u10k	-s 10k	-I 1000		-f $VFILE",
-//        Path + "pread " + Opts + " -N pread_u100k	-s 100k	-I 10000	-f $VFILE",
+//        "pread " + Opts + " -N pread_u1k	-s 1k	-I 300		-f $VFILE",
+//        "pread " + Opts + " -N pread_u10k	-s 10k	-I 1000		-f $VFILE",
+//        "pread " + Opts + " -N pread_u100k	-s 100k	-I 10000	-f $VFILE",
 
-        Path + "pread " + Opts + " -N pread_z1k	-s 1k	-I 300		-f /dev/zero ",
-        Path + "pread " + Opts + " -N pread_z10k	-s 10k	-I 1000		-f /dev/zero ",
-        Path + "pread " + Opts + " -N pread_z100k	-s 100k	-I 2000	-f /dev/zero ",
-        Path + "pread " + Opts + " -N pread_zw100k	-s 100k	-w -I 10000	-f /dev/zero ",
+        "pread " + Opts + " -N pread_z1k	-s 1k	-I 300		-f /dev/zero ",
+        "pread " + Opts + " -N pread_z10k	-s 10k	-I 1000		-f /dev/zero ",
+        "pread " + Opts + " -N pread_z100k	-s 100k	-I 2000	-f /dev/zero ",
+        "pread " + Opts + " -N pread_zw100k	-s 100k	-w -I 10000	-f /dev/zero ",
 
-//        Path + "pwrite " + Opts + " -N pwrite_t1k	-s 1k	-I 500		-f $TFILE",
-//        Path + "pwrite " + Opts + " -N pwrite_t10k	-s 10k	-I 1000		-f $TFILE",
-//        Path + "pwrite " + Opts + " -N pwrite_t100k	-s 100k	-I 10000	-f $TFILE",
+//        "pwrite " + Opts + " -N pwrite_t1k	-s 1k	-I 500		-f $TFILE",
+//        "pwrite " + Opts + " -N pwrite_t10k	-s 10k	-I 1000		-f $TFILE",
+//        "pwrite " + Opts + " -N pwrite_t100k	-s 100k	-I 10000	-f $TFILE",
 
-//        Path + "pwrite " + Opts + " -N pwrite_u1k	-s 1k	-I 500		-f $VFILE",
-//        Path + "pwrite " + Opts + " -N pwrite_u10k	-s 10k	-I 1000		-f $VFILE",
-//        Path + "pwrite " + Opts + " -N pwrite_u100k	-s 100k	-I 20000	-f $VFILE",
+//        "pwrite " + Opts + " -N pwrite_u1k	-s 1k	-I 500		-f $VFILE",
+//        "pwrite " + Opts + " -N pwrite_u10k	-s 10k	-I 1000		-f $VFILE",
+//        "pwrite " + Opts + " -N pwrite_u100k	-s 100k	-I 20000	-f $VFILE",
 
-        Path + "pwrite " + Opts + " -N pwrite_n1k	-s 1k	-I 100		-f /dev/null ",
-        Path + "pwrite " + Opts + " -N pwrite_n10k	-s 10k	-I 100		-f /dev/null ",
-        Path + "pwrite " + Opts + " -N pwrite_n100k	-s 100k	-I 100		-f /dev/null ",
+        "pwrite " + Opts + " -N pwrite_n1k	-s 1k	-I 100		-f /dev/null ",
+        "pwrite " + Opts + " -N pwrite_n10k	-s 10k	-I 100		-f /dev/null ",
+        "pwrite " + Opts + " -N pwrite_n100k	-s 100k	-I 100		-f /dev/null ",
 
-        Path + "mmap " + Opts + " -N mmap_z8k	-l 8k   -I 1000		-f /dev/zero",
-        Path + "mmap " + Opts + " -N mmap_z128k	-l 128k	-I 2000		-f /dev/zero",
-//        Path + "mmap " + Opts + " -N mmap_t8k	-l 8k	-I 1000		-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_t128k	-l 128k	-I 1000		-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_u8k	-l 8k	-I 1000		-f $VFILE",
-//        Path + "mmap " + Opts + " -N mmap_u128k	-l 128k	-I 1000		-f $VFILE",
-        Path + "mmap " + Opts + " -N mmap_a8k	-l 8k	-I 200		-f MAP_ANON",
-        Path + "mmap " + Opts + " -N mmap_a128k	-l 128k	-I 200		-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_z8k	-l 8k   -I 1000		-f /dev/zero",
+        "mmap " + Opts + " -N mmap_z128k	-l 128k	-I 2000		-f /dev/zero",
+//        "mmap " + Opts + " -N mmap_t8k	-l 8k	-I 1000		-f $TFILE",
+//        "mmap " + Opts + " -N mmap_t128k	-l 128k	-I 1000		-f $TFILE",
+//        "mmap " + Opts + " -N mmap_u8k	-l 8k	-I 1000		-f $VFILE",
+//        "mmap " + Opts + " -N mmap_u128k	-l 128k	-I 1000		-f $VFILE",
+        "mmap " + Opts + " -N mmap_a8k	-l 8k	-I 200		-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_a128k	-l 128k	-I 200		-f MAP_ANON",
 
 
-        Path + "mmap " + Opts + " -N mmap_rz8k	-l 8k	-I 2000 -r	-f /dev/zero",
-        Path + "mmap " + Opts + " -N mmap_rz128k	-l 128k	-I 2000 -r	-f /dev/zero",
-//        Path + "mmap " + Opts + " -N mmap_rt8k	-l 8k	-I 2000 -r	-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_rt128k	-l 128k	-I 20000 -r	-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_ru8k	-l 8k	-I 2000 -r	-f $VFILE",
-        Path + "mmap " + Opts + " -N mmap_ru128k	-l 128k	-I 20000 -r	-f $VFILE",
-        Path + "mmap " + Opts + " -N mmap_ra8k	-l 8k	-I 2000 -r	-f MAP_ANON",
-        Path + "mmap " + Opts + " -N mmap_ra128k	-l 128k	-I 20000 -r	-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_rz8k	-l 8k	-I 2000 -r	-f /dev/zero",
+        "mmap " + Opts + " -N mmap_rz128k	-l 128k	-I 2000 -r	-f /dev/zero",
+//        "mmap " + Opts + " -N mmap_rt8k	-l 8k	-I 2000 -r	-f $TFILE",
+//        "mmap " + Opts + " -N mmap_rt128k	-l 128k	-I 20000 -r	-f $TFILE",
+//        "mmap " + Opts + " -N mmap_ru8k	-l 8k	-I 2000 -r	-f $VFILE",
+        "mmap " + Opts + " -N mmap_ru128k	-l 128k	-I 20000 -r	-f $VFILE",
+        "mmap " + Opts + " -N mmap_ra8k	-l 8k	-I 2000 -r	-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_ra128k	-l 128k	-I 20000 -r	-f MAP_ANON",
 
-        Path + "mmap " + Opts + " -N mmap_wz8k	-l 8k	-I 5000 -w	-f /dev/zero",
-        Path + "mmap " + Opts + " -N mmap_wz128k	-l 128k	-I 50000 -w	-f /dev/zero",
-//        Path + "mmap " + Opts + " -N mmap_wt8k	-l 8k	-I 5000 -w	-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_wt128k	-l 128k	-I 50000 -w	-f $TFILE",
-//        Path + "mmap " + Opts + " -N mmap_wu8k	-l 8k	-I 5000 -w	-f $VFILE",
-//        Path + "mmap " + Opts + " -N mmap_wu128k	-l 128k	-I 500000 -w	-f $VFILE",
-        Path + "mmap " + Opts + " -N mmap_wa8k	-l 8k	-I 3000 -w	-f MAP_ANON",
-        Path + "mmap " + Opts + " -N mmap_wa128k	-l 128k	-I 50000 -w	-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_wz8k	-l 8k	-I 5000 -w	-f /dev/zero",
+        "mmap " + Opts + " -N mmap_wz128k	-l 128k	-I 50000 -w	-f /dev/zero",
+//        "mmap " + Opts + " -N mmap_wt8k	-l 8k	-I 5000 -w	-f $TFILE",
+//        "mmap " + Opts + " -N mmap_wt128k	-l 128k	-I 50000 -w	-f $TFILE",
+//        "mmap " + Opts + " -N mmap_wu8k	-l 8k	-I 5000 -w	-f $VFILE",
+//        "mmap " + Opts + " -N mmap_wu128k	-l 128k	-I 500000 -w	-f $VFILE",
+        "mmap " + Opts + " -N mmap_wa8k	-l 8k	-I 3000 -w	-f MAP_ANON",
+        "mmap " + Opts + " -N mmap_wa128k	-l 128k	-I 50000 -w	-f MAP_ANON",
 
-        Path + "munmap " + Opts + " -N unmap_z8k	-l 8k   -I 500		-f /dev/zero",
-        Path + "munmap " + Opts + " -N unmap_z128k	-l 128k	-I 500		-f /dev/zero",
-//        Path + "munmap " + Opts + " -N unmap_t8k	-l 8k	-I 500		-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_t128k	-l 128k	-I 500		-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_u8k	-l 8k	-I 500		-f $VFILE",
-//        Path + "munmap " + Opts + " -N unmap_u128k	-l 128k	-I 500		-f $VFILE",
-        Path + "munmap " + Opts + " -N unmap_a8k	-l 8k	-I 500		-f MAP_ANON",
-        Path + "munmap " + Opts + " -N unmap_a128k	-l 128k	-I 500		-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_z8k	-l 8k   -I 500		-f /dev/zero",
+        "munmap " + Opts + " -N unmap_z128k	-l 128k	-I 500		-f /dev/zero",
+//        "munmap " + Opts + " -N unmap_t8k	-l 8k	-I 500		-f $TFILE",
+//        "munmap " + Opts + " -N unmap_t128k	-l 128k	-I 500		-f $TFILE",
+//        "munmap " + Opts + " -N unmap_u8k	-l 8k	-I 500		-f $VFILE",
+//        "munmap " + Opts + " -N unmap_u128k	-l 128k	-I 500		-f $VFILE",
+        "munmap " + Opts + " -N unmap_a8k	-l 8k	-I 500		-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_a128k	-l 128k	-I 500		-f MAP_ANON",
 
-        Path + "munmap " + Opts + " -N unmap_rz8k	-l 8k	-I 1000	-r	-f /dev/zero",
-        Path + "munmap " + Opts + " -N unmap_rz128k	-l 128k	-I 2000 -r	-f /dev/zero",
-//        Path + "munmap " + Opts + " -N unmap_rt8k	-l 8k	-I 1000	-r	-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_rt128k	-l 128k	-I 3000	-r	-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_ru8k	-l 8k	-I 1000	-r	-f $VFILE",
-//        Path + "munmap " + Opts + " -N unmap_ru128k	-l 128k	-I 3000	-r	-f $VFILE",
-        Path + "munmap " + Opts + " -N unmap_ra8k	-l 8k	-I 1000	-r	-f MAP_ANON",
-        Path + "munmap " + Opts + " -N unmap_ra128k	-l 128k	-I 2000	-r	-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_rz8k	-l 8k	-I 1000	-r	-f /dev/zero",
+        "munmap " + Opts + " -N unmap_rz128k	-l 128k	-I 2000 -r	-f /dev/zero",
+//        "munmap " + Opts + " -N unmap_rt8k	-l 8k	-I 1000	-r	-f $TFILE",
+//        "munmap " + Opts + " -N unmap_rt128k	-l 128k	-I 3000	-r	-f $TFILE",
+//        "munmap " + Opts + " -N unmap_ru8k	-l 8k	-I 1000	-r	-f $VFILE",
+//        "munmap " + Opts + " -N unmap_ru128k	-l 128k	-I 3000	-r	-f $VFILE",
+        "munmap " + Opts + " -N unmap_ra8k	-l 8k	-I 1000	-r	-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_ra128k	-l 128k	-I 2000	-r	-f MAP_ANON",
 
-//        Path + "connection " + Opts + " -N conn_connect		-B 256 	-c",
+//        "connection " + Opts + " -N conn_connect		-B 256 	-c",
 
-        Path + "munmap " + Opts + " -N unmap_wz8k	-l 8k	-I 1000	-w	-f /dev/zero",
-        Path + "munmap " + Opts + " -N unmap_wz128k	-l 128k	-I 8000	-w	-f /dev/zero",
-//        Path + "munmap " + Opts + " -N unmap_wt8k	-l 8k	-I 1000	-w	-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_wt128k	-l 128k	-I 10000	-w	-f $TFILE",
-//        Path + "munmap " + Opts + " -N unmap_wu8k	-l 8k	-I 1000	-w	-f $VFILE",
-//        Path + "munmap " + Opts + " -N unmap_wu128k	-l 128k	-I 50000	-w	-f $VFILE",
-        Path + "munmap " + Opts + " -N unmap_wa8k	-l 8k	-I 1000	-w	-f MAP_ANON",
-        Path + "munmap " + Opts + " -N unmap_wa128k	-l 128k	-I 10000	-w	-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_wz8k	-l 8k	-I 1000	-w	-f /dev/zero",
+        "munmap " + Opts + " -N unmap_wz128k	-l 128k	-I 8000	-w	-f /dev/zero",
+//        "munmap " + Opts + " -N unmap_wt8k	-l 8k	-I 1000	-w	-f $TFILE",
+//        "munmap " + Opts + " -N unmap_wt128k	-l 128k	-I 10000	-w	-f $TFILE",
+//        "munmap " + Opts + " -N unmap_wu8k	-l 8k	-I 1000	-w	-f $VFILE",
+//        "munmap " + Opts + " -N unmap_wu128k	-l 128k	-I 50000	-w	-f $VFILE",
+        "munmap " + Opts + " -N unmap_wa8k	-l 8k	-I 1000	-w	-f MAP_ANON",
+        "munmap " + Opts + " -N unmap_wa128k	-l 128k	-I 10000	-w	-f MAP_ANON",
 
 
-        Path + "mprotect " + Opts + " -N mprot_z8k	-l 8k  -I 300			-f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_z128k	-l 128k	-I 500		-f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_wz8k	-l 8k	-I 500	-w	-f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_wz128k	-l 128k	-I 1000	-w	-f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_twz8k  -l 8k   -I 1000 -w -t   -f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_tw128k -l 128k -I 2000 -w -t   -f /dev/zero",
-        Path + "mprotect " + Opts + " -N mprot_tw4m   -l 4m   -w -t -B 1  -f /dev/zero",
+        "mprotect " + Opts + " -N mprot_z8k	-l 8k  -I 300			-f /dev/zero",
+        "mprotect " + Opts + " -N mprot_z128k	-l 128k	-I 500		-f /dev/zero",
+        "mprotect " + Opts + " -N mprot_wz8k	-l 8k	-I 500	-w	-f /dev/zero",
+        "mprotect " + Opts + " -N mprot_wz128k	-l 128k	-I 1000	-w	-f /dev/zero",
+        "mprotect " + Opts + " -N mprot_twz8k  -l 8k   -I 1000 -w -t   -f /dev/zero",
+        "mprotect " + Opts + " -N mprot_tw128k -l 128k -I 2000 -w -t   -f /dev/zero",
+        "mprotect " + Opts + " -N mprot_tw4m   -l 4m   -w -t -B 1  -f /dev/zero",
 
-        Path + "pipe " + Opts + " -N pipe_pst1	-s 1	-I 1000	-x pipe -m st",
-        Path + "pipe " + Opts + " -N pipe_pmt1	-s 1	-I 8000	-x pipe -m mt",
-        Path + "pipe " + Opts + " -N pipe_pmp1	-s 1	-I 8000	-x pipe -m mp",
-        Path + "pipe " + Opts + " -N pipe_pst4k	-s 4k	-I 1000	-x pipe -m st",
-        Path + "pipe " + Opts + " -N pipe_pmt4k	-s 4k	-I 8000	-x pipe -m mt",
-        Path + "pipe " + Opts + " -N pipe_pmp4k	-s 4k	-I 8000	-x pipe -m mp",
+        "pipe " + Opts + " -N pipe_pst1	-s 1	-I 1000	-x pipe -m st",
+        "pipe " + Opts + " -N pipe_pmt1	-s 1	-I 8000	-x pipe -m mt",
+        "pipe " + Opts + " -N pipe_pmp1	-s 1	-I 8000	-x pipe -m mp",
+        "pipe " + Opts + " -N pipe_pst4k	-s 4k	-I 1000	-x pipe -m st",
+        "pipe " + Opts + " -N pipe_pmt4k	-s 4k	-I 8000	-x pipe -m mt",
+        "pipe " + Opts + " -N pipe_pmp4k	-s 4k	-I 8000	-x pipe -m mp",
 
-        Path + "pipe " + Opts + " -N pipe_sst1	-s 1	-I 1000	-x sock -m st",
-        Path + "pipe " + Opts + " -N pipe_smt1	-s 1	-I 8000	-x sock -m mt",
-        Path + "pipe " + Opts + " -N pipe_smp1	-s 1	-I 8000	-x sock -m mp",
-        Path + "pipe " + Opts + " -N pipe_sst4k	-s 4k	-I 1000	-x sock -m st",
-        Path + "pipe " + Opts + " -N pipe_smt4k	-s 4k	-I 8000	-x sock -m mt",
-        Path + "pipe " + Opts + " -N pipe_smp4k	-s 4k	-I 8000	-x sock -m mp",
+        "pipe " + Opts + " -N pipe_sst1	-s 1	-I 1000	-x sock -m st",
+        "pipe " + Opts + " -N pipe_smt1	-s 1	-I 8000	-x sock -m mt",
+        "pipe " + Opts + " -N pipe_smp1	-s 1	-I 8000	-x sock -m mp",
+        "pipe " + Opts + " -N pipe_sst4k	-s 4k	-I 1000	-x sock -m st",
+        "pipe " + Opts + " -N pipe_smt4k	-s 4k	-I 8000	-x sock -m mt",
+        "pipe " + Opts + " -N pipe_smp4k	-s 4k	-I 8000	-x sock -m mp",
 
-        Path + "pipe " + Opts + " -N pipe_tst1	-s 1	-I 1000	-x tcp  -m st",
-        Path + "pipe " + Opts + " -N pipe_tmt1	-s 1	-I 8000	-x tcp  -m mt",
-        Path + "pipe " + Opts + " -N pipe_tmp1	-s 1	-I 8000	-x tcp  -m mp",
-        Path + "pipe " + Opts + " -N pipe_tst4k	-s 4k	-I 1000	-x tcp  -m st",
-        Path + "pipe " + Opts + " -N pipe_tmt4k	-s 4k	-I 8000	-x tcp  -m mt",
-        Path + "pipe " + Opts + " -N pipe_tmp4k	-s 4k	-I 8000	-x tcp  -m mp",
+        "pipe " + Opts + " -N pipe_tst1	-s 1	-I 1000	-x tcp  -m st",
+        "pipe " + Opts + " -N pipe_tmt1	-s 1	-I 8000	-x tcp  -m mt",
+        "pipe " + Opts + " -N pipe_tmp1	-s 1	-I 8000	-x tcp  -m mp",
+        "pipe " + Opts + " -N pipe_tst4k	-s 4k	-I 1000	-x tcp  -m st",
+        "pipe " + Opts + " -N pipe_tmt4k	-s 4k	-I 8000	-x tcp  -m mt",
+        "pipe " + Opts + " -N pipe_tmp4k	-s 4k	-I 8000	-x tcp  -m mp",
 
-//        Path + "connection " + Opts + " -N conn_accept		-B 256      -a",
+//        "connection " + Opts + " -N conn_accept		-B 256      -a",
 
-        Path + "close_tcp " + Opts + " -N close_tcp		-B 32  "
+        "close_tcp " + Opts + " -N close_tcp		-B 32  "
 
     );
 
@@ -380,6 +379,10 @@
     protected String getTag() {
         return "Native Micro";
     };
+    @Override
+    protected String getPath() {
+        return "/system/bin/bench_";
+    }
     protected final List<String> getCommands() {
         return COMMANDS;
     }
diff --git a/src/org/zeroxlab/benchmark/Benchmark.java b/src/org/zeroxlab/benchmark/Benchmark.java
index 4e40007..eab1b18 100644
--- a/src/org/zeroxlab/benchmark/Benchmark.java
+++ b/src/org/zeroxlab/benchmark/Benchmark.java
@@ -41,6 +41,7 @@
 import android.app.ProgressDialog;
 
 import org.opensolaris.hub.libmicro.*;
+import org.zeroxlab.byteunix.*;
 
 import android.os.PowerManager;
 import android.os.PowerManager.WakeLock;
@@ -98,7 +99,9 @@
         Case teapot = new CaseTeapot();
         Case gc     = new CaseGC();
         Case libMicro = new NativeCaseMicro();
+        Case libUbench = new NativeCaseUbench();
 
+        mCases.add(libUbench);
         // mflops
         mCases.add(arith);
         mCases.add(scimark2);
diff --git a/src/org/zeroxlab/benchmark/NativeTester.java b/src/org/zeroxlab/benchmark/NativeTester.java
index 900809a..15d0e07 100644
--- a/src/org/zeroxlab/benchmark/NativeTester.java
+++ b/src/org/zeroxlab/benchmark/NativeTester.java
@@ -56,7 +56,7 @@
     public final String ENV_VAR = "ZXBENCH_PORT";
 
     public final int CHECK_FREQ = 1000;
-    public final int IDLE_KILL = 20000; //1000 * 60 * 5 (5mins);
+    public final int IDLE_KILL = 40000; //1000 * 60 * 5 (5mins);
 
     public String mCommand;
     public Handler mHandler;
@@ -82,6 +82,8 @@
     private Socket mClientSocket = null;
     private int mBindPort = -1;
 
+    private String mCurrentCommand;
+
     public NativeTester() {
         mRuntime = Runtime.getRuntime();
     }
@@ -97,7 +99,15 @@
             public void handleMessage(Message msg) {
                 switch (msg.what) {
                     case GUINOTIFIER:
-                        mTextView.setText("idle time: " + mIdleTime + "\nstderr -->\n" + stdErr.toString() + "\nstdout -->\n" + stdOut.toString());
+                        StringBuilder display = new StringBuilder();
+                        display.append("Idle time: " + (int)mIdleTime + "ms");
+                        display.append("\nCommand -->\n");
+                        display.append(mCurrentCommand);
+                        display.append("\nStderr -->\n");
+                        display.append(stdErr.toString());
+                        display.append("\nStdout -->\n");
+                        display.append(stdOut.toString());
+                        mTextView.setText(display.toString());
                         mScrollView.post(new Runnable() { 
                             public void run() { 
                                 mScrollView.fullScroll(ScrollView.FOCUS_DOWN); 
@@ -112,6 +122,7 @@
     }
 
     protected abstract List<String> getCommands();
+    protected abstract String getPath();
 
     protected abstract boolean saveResult(Intent intent);
 
@@ -154,6 +165,7 @@
     class ProcessRunner extends Thread {
         public void run() {
             for(String command: getCommands()) {
+                mCurrentCommand = command;
                 Log.i(TAG, "------------------------ process " + command + " start ------------------------ ");
                 try {
                     mServerSocket = new ServerSocket(0);
@@ -170,7 +182,7 @@
                     ENV_VAR + "=" + mBindPort,
                 };
                 try {
-                    mProcess = mRuntime.exec(command, envp);
+                    mProcess = mRuntime.exec(getPath() + command, envp, getFilesDir());
                     if(mProcess == null)
                         throw new Exception();
                     mProcessRunning = true;
diff --git a/src/org/zeroxlab/byteunix/NativeCaseUbench.java b/src/org/zeroxlab/byteunix/NativeCaseUbench.java
index 039987d..78935f0 100644
--- a/src/org/zeroxlab/byteunix/NativeCaseUbench.java
+++ b/src/org/zeroxlab/byteunix/NativeCaseUbench.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensolaris.hub.libmicro;
+package org.zeroxlab.byteunix;
 
 import org.zeroxlab.benchmark.*;
 
@@ -31,7 +31,7 @@
 
 import java.util.ArrayList;
 
-import org.opensolaris.hub.libmicro.NativeTesterMicro;
+import org.zeroxlab.byteunix.NativeTesterUbench;
 
 public class NativeCaseUbench  extends Case {
 
@@ -42,7 +42,7 @@
     public static int Round  = 1;
 
     public NativeCaseUbench() {
-        super("NativeCaseMicro", "org.opensolaris.hub.libmicro.NativeTesterMicro", Repeat, Round);
+        super("NativeCaseUbench", "org.zeroxlab.byteunix.NativeTesterUbench", Repeat, Round);
 
         mType = "UnixBench";
         String [] _tmp = {
@@ -58,7 +58,7 @@
     }
 
     public String getDescription() {
-        return "(Requires root and pre-deployed binaries) UnixBench is the original BYTE UNIX benchmark suite, updated and revised by many people over the years. ";
+        return "(Requires root and pre-deployed binaries) UnixBench is the original BYTE UNIX benchmark suite, updated and revised by many people over the years. Takes about 30 minutes to run.";
     }
 
     private void generateInfo() {
@@ -95,13 +95,22 @@
         ArrayList<Scenario> scenarios = new ArrayList<Scenario>();
 
         Bundle bundle = mInfo[0]; // only 1 run
-        for(String command: NativeTesterMicro.COMMANDS) {
+        for(String command: NativeTesterUbench.COMMANDS) {
+            if(!bundle.containsKey(command+"S") || !bundle.containsKey(command+"FA"))
+                continue;
             String name = bundle.getString(command+"S");
             String results = bundle.getString(command+"FA");
+            bundle.remove(command+"S");
+            bundle.remove(command+"FA");
             if(name == null || results == null)
                 continue;
             ArrayList<String> _mTags = new ArrayList<String>();
-            _mTags.add((String)("exe:" + command.substring(command.lastIndexOf("_")+1, command.indexOf(" "))));
+            int space = command.indexOf(" ");
+            if(space > 0)
+                _mTags.add((String)("exe:" + command.substring(0, command.indexOf(" "))));
+            else
+                _mTags.add((String)("exe:" + command));
+            //TODO add unit as tag
 
             String [] __mTags =  (String[])(_mTags.toArray(new String[_mTags.size()]));
             Scenario s = new Scenario(name, mType, __mTags, true);
@@ -114,9 +123,9 @@
 
     @Override
     protected boolean saveResult(Intent intent, int index) {
-        Bundle info = intent.getBundleExtra(NativeTesterMicro.RESULT);
+        Bundle info = intent.getBundleExtra(NativeTesterUbench.RESULT);
         if (info == null) {
-            Log.i(TAG, "Cannot find LibMicroInfo");
+            Log.i(TAG, "Cannot find LibUbenchInfo");
             return false;
         } else {
             mInfo[index] = info;
diff --git a/src/org/zeroxlab/byteunix/NativeTesterUbench.java b/src/org/zeroxlab/byteunix/NativeTesterUbench.java
index bbe5aa4..f84674b 100644
--- a/src/org/zeroxlab/byteunix/NativeTesterUbench.java
+++ b/src/org/zeroxlab/byteunix/NativeTesterUbench.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.opensolaris.hub.libmicro;
+package org.zeroxlab.byteunix;
 
 import org.zeroxlab.benchmark.*;
 
@@ -34,35 +34,49 @@
 
     public static final String REPORT = "REPORT";
     public static final String RESULT = "RESULT";
-    private static final String Path = "/system/bin/bench_ubench_";
     public static final List<String> COMMANDS  = Arrays.asList(
         "dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10","dhry2reg 10",
         "whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double","whetstone-double",
         "execl 30","execl 30","execl 30",
-        "fstime -c -t 30 -d /data/ -b 1024 -m 2000",
-        "fstime -c -t 30 -d /data/ -b 256 -m 500",
-        "fstime -c -t 30 -d /data -b 4096 -m 8000",
+        "fstime -c -t 30 -d ./ -b 1024 -m 2000","fstime -c -t 30 -d ./ -b 1024 -m 2000","fstime -c -t 30 -d ./ -b 1024 -m 2000",
+        "fstime -c -t 30 -d ./ -b 256 -m 500","fstime -c -t 30 -d ./ -b 256 -m 500","fstime -c -t 30 -d ./ -b 256 -m 500",
+        "fstime -c -t 30 -d ./ -b 4096 -m 8000","fstime -c -t 30 -d ./ -b 4096 -m 8000","fstime -c -t 30 -d ./ -b 4096 -m 8000",
         "pipe 10","pipe 10","pipe 10","pipe 10","pipe 10","pipe 10","pipe 10","pipe 10","pipe 10","pipe 10",
         "context1 10","context1 10","context1 10",
         "spawn 30","spawn 30","spawn 30",
-        "syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10",
-        "looper 60 /system/bin/bench_ubench_multi.sh 1",
-        "looper 60 /system/bin/bench_ubench_multi.sh 8"
+        "syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10","syscall 10"
+//        "looper 60 /system/bin/bench_ubench_multi.sh 1",
+//        "looper 60 /system/bin/bench_ubench_multi.sh 8"
     );
     public static final HashMap<String, String> commandToName = new HashMap<String, String>() {
         {
             put("dhry2reg 10", "dhry2reg");
             put("whetstone-double", "whetstone-double");
             put("execl 30", "execl");
-            put("fstime -c -t 30 -d /data/ -b 1024 -m 2000", "fstime");
-            put("fstime -c -t 30 -d /data/ -b 256 -m 500", "fsbuffer");
-            put("fstime -c -t 30 -d /data -b 4096 -m 8000", "fsdisk-w");
             put("pipe 10", "pipe");
             put("context1 10", "context1");
             put("spawn 30", "spawn");
             put("syscall 10", "syscall");
-            put("looper 60 /system/bin/bench_ubench_multi.sh 1", "shell1");
-            put("looper 60 /system/bin/bench_ubench_multi.sh 8", "shell8");
+
+            put("arithoh 10", "Arithoh");
+            put("double 10", "Arithmetic:double");
+            put("float 10", "Arithmetic:float");
+            put("int 10", "Arithmetic:int");
+            put("long 10", "Arithmetic:long");
+            put("short 10", "Arithmetic:short");
+
+            put("fstime -c -t 30 -d ./ -b 1024 -m 2000", "fstime");
+            put("fstime -c -t 30 -d ./ -b 256 -m 500", "fsbuffer");
+            put("fstime -c -t 30 -d ./ -b 4096 -m 8000", "fsdisk");
+            put("fstime -r -t 30 -d ./ -b 1024 -m 2000", "fstime-r");
+            put("fstime -r -t 30 -d ./ -b 256 -m 500", "fsbuffer-r");
+            put("fstime -r -t 30 -d ./ -b 4096 -m 8000", "fsdisk-r");
+            put("fstime -w -t 30 -d ./ -b 1024 -m 2000", "fstime-w");
+            put("fstime -w -t 30 -d ./ -b 256 -m 500", "fsbuffer-w");
+            put("fstime -w -t 30 -d ./ -b 4096 -m 8000", "fsdisk-r");
+
+//            put("looper 60 /system/bin/bench_ubench_multi.sh 1", "shell1");
+//            put("looper 60 /system/bin/bench_ubench_multi.sh 8", "shell8");
         }
     };
 
@@ -71,12 +85,17 @@
     protected String getTag() {
         return "Native Ubench";
     };
+    @Override
+    protected String getPath() {
+        return "/system/bin/bench_ubench_";
+    }
     protected final List<String> getCommands() {
         return COMMANDS;
     }
 
     @Override
     protected boolean saveResult(Intent intent) {
+        /* The strategy of this function is ported directly from the Run perl script of byte unix */
         Bundle bundle = new Bundle();
 //        StringBuilder report = new StringBuilder();
         for (String command: getCommands()) {
@@ -86,20 +105,29 @@
 //            report.append("---------------------------\n");
             if(!mSockets.containsKey(command))
                 continue;
+            Log.i(TAG, "Socket: " + mSockets.get(command));
+            if(mSockets.get(command).trim().length() == 0)
+                continue;
             String [] lines = mSockets.get(command).trim().split("\n");
+
+            mSockets.remove(command);
+
+            Log.i(TAG, "line0: " + lines[0]);
+            String [] initFields = lines[0].split("[|]");
+            // COUNT|2734838|1|lps|10.000082
             StringBuilder list = new StringBuilder();;
-            Integer base = (int)Float.parseFloat(lines[0].trim().split("|")[1]);
-            String unit = lines[0].trim().split("|")[2];
+            Integer base = (int)Float.parseFloat(initFields[2]);
+            String unit = initFields[3];
             ArrayList<Measure> measures = new ArrayList<Measure>();
             for(String line: lines) {
-                String [] sp = line.trim().split("|");
-                if (sp.length != 4) {
+                String [] fields = line.trim().split("[|]");
+                if (fields.length != 5) {
                     Log.w(TAG, "error line: " + line.trim());
                     continue;
                 }
-                Float count = Float.parseFloat(sp[0]);
-                Float time = Float.parseFloat(sp[3]);
-                if((!sp[2].equals(unit)) || ((int)Float.parseFloat(sp[1]) != base)){
+                Float count = Float.parseFloat(fields[1]);
+                Float time = Float.parseFloat(fields[4]);
+                if((!fields[3].equals(unit)) || ((int)Float.parseFloat(fields[2]) != base)){
                     Log.w(TAG, "error line: " + line.trim());
                     continue;
                 }
@@ -114,8 +142,11 @@
                     list.append( (measure.count/(measure.time/base)) + " ");
                 }
             }
-            bundle.putString(command+"S", commandToName.get(command) + "(" + unit + ")");
+            bundle.putString(command+"S", commandToName.get(command) + "&#040;" + unit + "&#041;");
             bundle.putString(command+"FA", list.toString().trim());
+            Log.i(TAG, "command: " + command);
+            Log.i(TAG, "save `" + command+"S" + "` -> " + commandToName.get(command) + "(" + unit + ")");
+            Log.i(TAG, "save `" + command+"FA" + "` -> " + list.toString().trim());
         }
 //        bundle.putString(REPORT, report.toString());
         intent.putExtra(RESULT, bundle);
@@ -132,7 +163,6 @@
         this.count = count;
         this.time = time;
     }
-    
 
     public int compareTo (Object o) {
         if (((Measure)o).count > this.count)
