diff --git a/.gitignore b/.gitignore
index 55247d40c21f3e779c5cbb6f3c531e9c580d9d03..19ab6d0f43e5be031d8830f125d79f27abd644c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,7 +16,7 @@ lib/c/test/test_labcomm_generated_encoding
 lib/c/test/test_labcomm_pthread_scheduler
 lib/c/test/test_signature_numbers
 compiler/AST/
-compiler/labComm.jar
+compiler/labcomm_compiler.jar
 encoded_data
 encoded_data06
 gen
diff --git a/Makefile b/Makefile
index c56c9bc50cb5264bd7ba901e53b7df3a5c3aa02b..f39ec573cdafc7744e251ca6318025afc7dc97b8 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 SUBDIRS=compiler lib test examples
-export LABCOMM_JAR=$(shell pwd)/compiler/labComm.jar
+export LABCOMM_JAR=$(shell pwd)/compiler/labcomm_compiler.jar
 export LABCOMM=java -jar $(LABCOMM_JAR) 
 
 all: $(SUBDIRS:%=make-%)
diff --git a/compiler/build.xml b/compiler/build.xml
index dd0e26953c4f324177e168e02100aa1c6b65eeaa..b7e303599c60ffa3993180e0eb47a43578d37081 100644
--- a/compiler/build.xml
+++ b/compiler/build.xml
@@ -77,7 +77,7 @@ classpath="tools/jastadd2.jar"/>
      <!-- delete all .class files recursively -->
     <delete>
       <fileset dir="." includes="**/*.class"/>
-      <fileset dir="." includes="labComm.jar"/>
+      <fileset dir="." includes="labcomm_compiler.jar"/>
     </delete>
 
 </target>
@@ -90,7 +90,7 @@ classpath="tools/jastadd2.jar"/>
 
 
 <target name="jar" depends="build">
-  <jar destfile="labComm.jar">
+  <jar destfile="labcomm_compiler.jar">
     <fileset dir="." includes="LabComm*.class"/>
     <fileset dir="." includes="AST/*.class"/>
     <zipfileset src="tools/beaver-rt.jar" includes="beaver/*.class"/>
diff --git a/examples/duck_typing/Makefile b/examples/duck_typing/Makefile
index cd5ec76bda5723684e3892efdf82d362d598723e..2587040229b3665c25660c4e0d3995e0071bb864 100644
--- a/examples/duck_typing/Makefile
+++ b/examples/duck_typing/Makefile
@@ -1,4 +1,4 @@
-LABCOMM_JAR=../../compiler/labComm.jar
+LABCOMM_JAR=../../compiler/labcomm_compiler.jar
 LABCOMM=java -jar $(LABCOMM_JAR) 
 
 all: gen/animal.py
diff --git a/examples/dynamic/dynamic.sh b/examples/dynamic/dynamic.sh
index 77fb6bcd1779a75a4cee43b106cfdb51c54b8053..8700a19b401df66f4c7ec12f009335eee73c8ecc 100644
--- a/examples/dynamic/dynamic.sh
+++ b/examples/dynamic/dynamic.sh
@@ -1,6 +1,6 @@
 #dummy script to test the on-the-fly compilation
 
-java -jar ../../compiler/labComm.jar --java=gen --javapackage=gen simple.lc
+java -jar ../../compiler/labcomm_compiler.jar --java=gen --javapackage=gen simple.lc
 
 javac -cp .:gen:../../lib/java/labcomm.jar gen/*.java
 
@@ -9,7 +9,7 @@ javac -cp .:gen:../../lib/java/labcomm.jar test/StaticEncoder.java
 javac -cp .:gen:../../lib/java/labcomm.jar test/StaticDecoder.java 
 
 # compile dynamic part 
-javac -cp .:../../compiler/labComm.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test/DynamicPart.java 
+javac -cp .:../../compiler/labcomm_compiler.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test/DynamicPart.java 
 
 javac test/HandlerContext.java
 
@@ -17,7 +17,7 @@ javac test/HandlerContext.java
 java -cp .:gen:../../lib/java//labcomm.jar test.StaticEncoder encoded_data
 
 # run dynamic part 
-java -cp .:../../compiler/labComm.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test.DynamicPart simple.lc handlers2.txt encoded_data dynamic_out
+java -cp .:../../compiler/labcomm_compiler.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test.DynamicPart simple.lc handlers2.txt encoded_data dynamic_out
 
 
 # run static decoder 
diff --git a/examples/dynamic/dynamic_type.sh b/examples/dynamic/dynamic_type.sh
index 8059a968d048e6959704896ec7c7c570a336b028..0f7fcc1a7d7663cd409083eed425df541d433374 100644
--- a/examples/dynamic/dynamic_type.sh
+++ b/examples/dynamic/dynamic_type.sh
@@ -1,6 +1,6 @@
 #dummy script to test the on-the-fly compilation
 
-java -jar ../../compiler/labComm.jar --java=gen --javapackage=gen simple.lc
+java -jar ../../compiler/labcomm_compiler.jar --java=gen --javapackage=gen simple.lc
 
 javac -cp .:gen:../../lib/java/labcomm.jar gen/*.java
 
@@ -9,7 +9,7 @@ javac -cp .:gen:../../lib/java/labcomm.jar test/StaticEncoder.java
 javac -cp .:gen:../../lib/java/labcomm.jar test/StaticDecoder.java 
 
 # compile dynamic part 
-javac -cp .:../../compiler/labComm.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test/DynamicPart.java 
+javac -cp .:../../compiler/labcomm_compiler.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test/DynamicPart.java 
 
 javac test/HandlerContext.java
 
@@ -17,7 +17,7 @@ javac test/HandlerContext.java
 java -cp .:gen:../../lib/java//labcomm.jar test.StaticEncoder encoded_data
 
 # run dynamic part 
-java -cp .:../../compiler/labComm.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test.DynamicPart simple_type.lc handlers_type.txt encoded_data dynamic_out
+java -cp .:../../compiler/labcomm_compiler.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test.DynamicPart simple_type.lc handlers_type.txt encoded_data dynamic_out
 
 
 # run static decoder 
diff --git a/examples/dynamic/static.sh b/examples/dynamic/static.sh
index ff1b8362de6978ad252cdf047d69fcdfb4d47f15..361e5fe4f4f0694c5c0fdda15c87934ace1850db 100644
--- a/examples/dynamic/static.sh
+++ b/examples/dynamic/static.sh
@@ -2,7 +2,7 @@
 
 # run labcomm compilation
 
-java -jar ../../compiler/labComm.jar --java=gen --javapackage=gen simple.lc
+java -jar ../../compiler/labcomm_compiler.jar --java=gen --javapackage=gen simple.lc
 
 # compile example programs
 javac -cp .:gen:../../lib/java/labcomm.jar test/StaticEncoder.java
diff --git a/examples/dynamic/test.sh b/examples/dynamic/test.sh
index 78907161c3f99d7e0f4b1eeaddf63cf5d21577f2..f98bc3717fad2955c68bba46958745d7deb529e8 100644
--- a/examples/dynamic/test.sh
+++ b/examples/dynamic/test.sh
@@ -1,7 +1,7 @@
 #dummy script to test the on-the-fly compilation
 
-javac -cp .:../../compiler/labComm.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test/TestLabcommGen.java 
+javac -cp .:../../compiler/labcomm_compiler.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test/TestLabcommGen.java 
 
 javac test/HandlerContext.java
 
-java -cp .:../../compiler/labComm.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test.TestLabcommGen simple.lc handlers2.txt encoded_data
+java -cp .:../../compiler/labcomm_compiler.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test.TestLabcommGen simple.lc handlers2.txt encoded_data
diff --git a/examples/dynamic/test_type.sh b/examples/dynamic/test_type.sh
index 3463d1a6a93da52025ff4217bb65078935fa2e5b..99b60eadc23732a9a0d59ea0ed80965ad6d36cab 100644
--- a/examples/dynamic/test_type.sh
+++ b/examples/dynamic/test_type.sh
@@ -1,7 +1,7 @@
 #dummy script to test the on-the-fly compilation
 
-javac -cp .:../../compiler/labComm.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test/TestLabcommGen.java 
+javac -cp .:../../compiler/labcomm_compiler.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test/TestLabcommGen.java 
 
 javac test/HandlerContext.java
 
-java -cp .:../../compiler/labComm.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test.TestLabcommGen simple_type.lc handlers_type.txt encoded_data
+java -cp .:../../compiler/labcomm_compiler.jar:../../lib/java/labcomm.jar:../../lib/tools/beaver.jar:../../lib/tools/beaver-rt.jar:../../lib/tools/jastadd2.jar:../../lib/tools/JFlex.jar:../../lib/tools/proj.jar  test.TestLabcommGen simple_type.lc handlers_type.txt encoded_data
diff --git a/examples/jgrafchart/Makefile b/examples/jgrafchart/Makefile
index fc468e905b01964b69d1b68d73d1887502bb88e0..38da6a22cd3c2bff9a9534f3372d64fe3878ed74 100644
--- a/examples/jgrafchart/Makefile
+++ b/examples/jgrafchart/Makefile
@@ -1,9 +1,9 @@
 LCDIR=../..
-LCC=java -jar ${LCDIR}/compiler/labComm.jar
+LABCOMM_JAR=../../compiler/labcomm_compiler.jar
+LABCOMM=java -jar $(LABCOMM_JAR) 
 CLASSPATH=.:${LCDIR}/lib/java/labcomm.jar
 JAVA_PKG=labcommTCPtest
 SAMPLENAME=foo
-LCC=java -jar ${LCDIR}/compiler/labComm.jar
 LCLIBDIR=${LCDIR}/lib/c
 
 LCFILE=jg
@@ -12,7 +12,7 @@ TLCFILE=turtle1
 TAUX=turtle_enc.c turtle_dec.c
 
 ${JAVA_PKG}/gen/foo.java: ${LCFILE}.lc
-	${LCC} --javapackage=${JAVA_PKG}.gen --java=${JAVA_PKG}/gen $<
+	${LABCOMM} --javapackage=${JAVA_PKG}.gen --java=${JAVA_PKG}/gen $<
 
 ${JAVA_PKG}/gen/${SAMPLENAME}.class: ${JAVA_PKG}/gen/${SAMPLENAME}.java
 	javac -cp ${CLASSPATH} $<
@@ -38,14 +38,14 @@ client: client.c ${LCFILE}.c ${AUX} ${AUX:.c=.h}
 
 testserver: testserver.c ${LCFILE}.c ${AUX} ${AUX:.c=.h}
 	${CC} -o $@ testserver.c ${AUX} ${LCFILE}.c -I${LCLIBDIR} -L${LCLIBDIR} -llabcomm
-	
+
 turtleclient: turtleclient.c ${TLCFILE}.c ${TAUX} ${TAUX:.c=.h}
 	${CC} -o $@ turtleclient.c ${TAUX} ${TLCFILE}.c -I${LCLIBDIR} -L${LCLIBDIR} -llabcomm
 ${LCFILE}.c : ${LCFILE}.lc
-	${LCC} -C ${LCFILE}.lc
+	${LABCOMM} -C ${LCFILE}.lc
 
 ${TLCFILE}.c : ${TLCFILE}.lc
-	${LCC} -C ${TLCFILE}.lc
+	${LABCOMM} -C ${TLCFILE}.lc
 
 all: client testserver ${JAVA_PKG}/server/TestServer.class ${JAVA_PKG}/client/TestClient.class turtleclient
 
diff --git a/examples/simple/compile.sh b/examples/simple/compile.sh
index ac5860108bfa5701629fa497990e0d3b439a3f88..61c171dd9e492836bc5f0bdd2298a9056982628c 100644
--- a/examples/simple/compile.sh
+++ b/examples/simple/compile.sh
@@ -5,7 +5,7 @@
 (cd ../..; make all)
 
 mkdir -p gen
-java -jar ../../compiler/labComm.jar --java=gen --c=gen/simple.c --h=gen/simple.h  --python=gen/simple.py simple.lc 
+java -jar ../../compiler/labcomm_compiler.jar --java=gen --c=gen/simple.c --h=gen/simple.h  --python=gen/simple.py simple.lc 
 
 javac -cp ../../lib/java/labcomm2014.jar:. gen/*.java Encoder.java Decoder.java
 
@@ -20,7 +20,7 @@ gcc -Wall -Werror -I . -I ../../lib/c -L../../lib/c \
 # For version 2006
 
 mkdir -p gen06
-java -jar ../../compiler/labComm.jar --ver=2006 --java=gen06 --c=gen06/simple.c --h=gen06/simple.h  --python=gen06/simple.py simple.lc 
+java -jar ../../compiler/labcomm_compiler.jar --ver=2006 --java=gen06 --c=gen06/simple.c --h=gen06/simple.h  --python=gen06/simple.py simple.lc 
 
 javac -cp ../../lib/java/labcomm2006.jar:. gen06/*.java Encoder06.java Decoder06.java
 
diff --git a/examples/tcp/Makefile b/examples/tcp/Makefile
index a96c0e1acc2f62d9a67fc4400a0b0e99ae4bda5b..ae9a5c4ce042a9cf5ae864853de95f8d540b4d95 100644
--- a/examples/tcp/Makefile
+++ b/examples/tcp/Makefile
@@ -1,5 +1,6 @@
 LCDIR=../..
-LCCJAR=${LCDIR}/compiler/labComm.jar  # the LabComm compiler
+LABCOMM_JAR=../../compiler/labcomm_compiler.jar
+LABCOMM=java -jar $(LABCOMM_JAR)
 LCLJAR=${LCDIR}/lib/java/labcomm.jar  # the LabComm library
 JAVA_PKG=labcommTCPtest
 
@@ -14,17 +15,16 @@ run : ${JAVA_PKG}/Example.class ${JAVA_PKG}/server/TestServer.class ${JAVA_PKG}/
 ### dependencies and parts ####################
 ###############################################
 
-LCC=java -jar ${LCCJAR}
 CLASSPATH=.:${LCLJAR}
 
-${LCCJAR} :
+${LABCOMM_JAR} :
 	cd ${LCDIR} && make make-compiler
 
 ${LCLJAR} :
 	cd ${LCDIR}/lib/java && make labcomm.jar
 
 ${JAVA_PKG}/gen/FooSample.java: test.lc ${LCCJAR}
-	${LCC} --javapackage=${JAVA_PKG}.gen --java=${JAVA_PKG}/gen $<
+	${LABCOMM} --javapackage=${JAVA_PKG}.gen --java=${JAVA_PKG}/gen $<
 
 ${JAVA_PKG}/gen/FooSample.class: ${JAVA_PKG}/gen/FooSample.java test.lc ${LCLJAR}   
 	javac -cp ${CLASSPATH} $<
diff --git a/examples/twoway/Makefile b/examples/twoway/Makefile
index 868966d6212b28ea8ef783304c128e04d4a52dbd..6c349286655b87849fdfd4ece409199bb95aa4cb 100644
--- a/examples/twoway/Makefile
+++ b/examples/twoway/Makefile
@@ -1,5 +1,5 @@
 TARGETS=client server
-LABCOMM_JAR=../../compiler/labComm.jar
+LABCOMM_JAR=../../compiler/labcomm_compiler.jar
 LABCOMM=java -jar $(LABCOMM_JAR) 
 
 CFLAGS=-O3 -g -Wall -Werror -I../../lib/c -I. -Wno-unused-function
diff --git a/examples/user_types/compile.sh b/examples/user_types/compile.sh
index d46c6698add6172a9eabd7fce70bf4d11e6cb708..42330b2fb69bdc2a14ffe71022b7f794166828b9 100644
--- a/examples/user_types/compile.sh
+++ b/examples/user_types/compile.sh
@@ -5,7 +5,7 @@
 (cd ../..; make all)
 
 mkdir -p gen
-java -jar ../../compiler/labComm.jar --java=gen --c=gen/test.c --h=gen/test.h  --python=gen/test.py test.lc 
+java -jar ../../compiler/labcomm_compiler.jar --java=gen --c=gen/test.c --h=gen/test.h  --python=gen/test.py test.lc 
 
 javac -cp ../../lib/java/labcomm2014.jar:. gen/*.java Encoder.java Decoder.java
 
diff --git a/examples/wiki_example/run b/examples/wiki_example/run
index c2f3bd5d0c0a91665395beffbe0c1cf692fb53bf..baaf2a929e8683e1f003034c87d80292ad8badb0 100755
--- a/examples/wiki_example/run
+++ b/examples/wiki_example/run
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # Auto generate code from .lc file
-java -jar ../../compiler/labComm.jar \
+java -jar ../../compiler/labcomm_compiler.jar \
   --c=example.c --h=example.h \
   --java=. \
   --cs=example.cs \
diff --git a/lib/c/Makefile b/lib/c/Makefile
index 274ef6f24c8c92de029fa311b800dd8b42b4a658..55a232cfca810a717150eced0a22cdc9f01b302f 100644
--- a/lib/c/Makefile
+++ b/lib/c/Makefile
@@ -60,7 +60,7 @@ OBJS=labcomm_memory.o \
      labcomm_pthread_scheduler.o 
 
 #FIXME: labcomm_mem_reader.o labcomm_mem_writer.o
-LABCOMM_JAR=../../compiler/labComm.jar
+LABCOMM_JAR=../../compiler/labcomm_compiler.jar
 LABCOMM=java -jar $(LABCOMM_JAR) 
 
 TESTS=test_labcomm_basic_type_encoding test_labcomm_generated_encoding \
diff --git a/test/Makefile b/test/Makefile
index 0fe91b486994f62b4254a2d66ef35ece03947f33..075d91f72d356a61f214e4381d8178d70dc28dc8 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,5 +1,5 @@
 TESTS=basic simple nested
-LABCOMM_JAR=../compiler/labComm.jar
+LABCOMM_JAR=../compiler/labcomm_compiler.jar
 LABCOMM=java -jar $(LABCOMM_JAR)
 
 CFLAGS=-O3 -g -Wall -Werror -Wno-unused-function