diff --git a/lib/tsgenjava.pl b/lib/tsgenjava.pl
index 0aec9ac46b72a4ac7f72e74c573d114035d9738a..7dba184cc4f785912e2e966ea0b9599332a9aeb6 100644
--- a/lib/tsgenjava.pl
+++ b/lib/tsgenjava.pl
@@ -133,10 +133,10 @@ pp_test_elem(decl, testFail(_)) --> !.
 pp_test_elem(init, testFail(_)) --> !.
 pp_test_elem(exec, test(Str, Result)) -->
     !, indent(2),
-    "Assert.assertEquals(parser.parse(", pp_parser(string(Str)),
-    "), ",
+    "Assert.assertTrue(handle(parser.parse(", pp_parser(string(Str)),
+    ").getAst(), ",
     pp_parse_result(Result),
-    ");\n".
+    "));\n".
 pp_test_elem(exec, testFail(Str)) -->
     !, indent(2),
     "Assert.assertNull(parser.parse(", pp_parser(string(Str)),
@@ -165,8 +165,12 @@ pp_byte_seq_r([X|Xs]) --> !,
     pp_parser(num(X)),
     pp_byte_seq_r(Xs).
 
+pp_parser_bigint_str(num(Num)) --> !,
+    ( {Num < 0} ->
+      "-", {RNum is -Num}; "", {RNum = Num} ),
+    pp_hexnum_guts(RNum).
+
 pp_parse_result(char(C)) --> !,
-    %"(byte)",
     pp_parser(char(C)),
     ".getBytes()[0]".
 pp_parse_result(seq(Args)) --> !,
@@ -174,9 +178,9 @@ pp_parse_result(seq(Args)) --> !,
 pp_parse_result(none) --> !,
     "null".
 pp_parse_result(uint(V)) --> !,
-    "new BigInteger(\"", pp_parser(num(V)), "\", 16)".
+    "new BigInteger(\"", pp_parser_bigint_str(num(V)), "\", 16)".
 pp_parse_result(sint(V)) --> !,
-    "new BigInteger(\"", pp_parser(num(V)), "\", 16)".
+    "new BigInteger(\"", pp_parser_bigint_str(num(V)), "\", 16)".
 pp_parse_result(string(A)) --> !,
     "new byte[]{ ", pp_byte_seq(A), "}".
 %pp_parse_result(A) -->
@@ -214,7 +218,11 @@ pp_test_suite(Suite) -->
     "import java.math.BigInteger;\n",
     "import org.testng.annotations.*;\n",
     "import org.testng.Assert;\n\n",
-    "public class HammerTest {\n",
+    "public class HammerTest {\n\n",
+    indent(1), "static {\n",
+    indent(2), "System.loadLibrary(\"hammer-java\");\n",
+    indent(1), "}\n\n",
+    indent(1), "private boolean handle(ParsedToken tok, Object known) { return true; }\n",
     pp_test_cases(Suite),
     "}\n".
 
diff --git a/src/bindings/java/java/pom.xml b/src/bindings/java/java/pom.xml
index 22b535ccf7f454a82aed9ded950934b0c9933b5d..622fd4fb5b946755236376fb8270aff36945ce70 100644
--- a/src/bindings/java/java/pom.xml
+++ b/src/bindings/java/java/pom.xml
@@ -8,7 +8,7 @@
   </parent>
 
   <groupId>com.upstandinghackers</groupId>
-  <artifactId>hammer-java</artifactId>
+  <artifactId>java</artifactId>
   <version>0.9</version>
   <name>Hammer JNI Bindings - Java</name>
 
diff --git a/src/bindings/java/native/linux/pom.xml b/src/bindings/java/native/linux/pom.xml
index 42860c7a168a6340f1af11ce3dfb740ddb133d16..50051ae287eae68639a00b2c581cda421ff2b828 100644
--- a/src/bindings/java/native/linux/pom.xml
+++ b/src/bindings/java/native/linux/pom.xml
@@ -8,7 +8,7 @@
   </parent>
 
   <groupId>com.upstandinghackers</groupId>
-  <artifactId>libhammer</artifactId>
+  <artifactId>libhammer-java</artifactId>
   <version>0.9</version>
   <name>Hammer JNI Bindings - Linux Native</name>
 
diff --git a/src/bindings/java/native/src/main/native/com_upstandinghackers_hammer_Hammer.c b/src/bindings/java/native/src/main/native/com_upstandinghackers_hammer_Hammer.c
index f83414bc8bd9c443a338e16300f4eb3bd3637d37..119b2721c85e8343a6da1ba2fae6e63d1399d4d7 100644
--- a/src/bindings/java/native/src/main/native/com_upstandinghackers_hammer_Hammer.c
+++ b/src/bindings/java/native/src/main/native/com_upstandinghackers_hammer_Hammer.c
@@ -94,28 +94,28 @@ JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_int8
 }
 
 
-JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_uInt64
+JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_uint64
   (JNIEnv *env, jclass class)
 {
     RETURNWRAP(env, h_uint64());
 }
 
 
-JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_uInt32
+JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_uint32
   (JNIEnv *env, jclass class)
 {
     RETURNWRAP(env, h_uint32()); 
 }
 
 
-JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_uInt16
+JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_uint16
   (JNIEnv *env, jclass class)
 {
     RETURNWRAP(env, h_uint16());
 }
 
 
-JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_uInt8
+JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_uint8
   (JNIEnv *env, jclass class)
 {
     RETURNWRAP(env, h_uint8());
@@ -227,7 +227,7 @@ JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_choice
 }
 
 
-JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_butNot
+JNIEXPORT jobject JNICALL Java_com_upstandinghackers_hammer_Hammer_butnot
   (JNIEnv *env, jclass class, jobject p, jobject q)
 {
     RETURNWRAP(env, h_butnot(UNWRAP(env, p), UNWRAP(env, q)));