diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml
index 6995d8f56..f957ae020 100644
--- a/.idea/checkstyle-idea.xml
+++ b/.idea/checkstyle-idea.xml
@@ -9,6 +9,7 @@
+
diff --git a/.idea/libraries/teavm_core_1_0_0_SNAPSHOT.xml b/.idea/libraries/teavm_core_1_0_0_SNAPSHOT.xml
new file mode 100644
index 000000000..0020c2209
--- /dev/null
+++ b/.idea/libraries/teavm_core_1_0_0_SNAPSHOT.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/teavm_tooling_1_0_0_SNAPSHOT.xml b/.idea/libraries/teavm_tooling_1_0_0_SNAPSHOT.xml
new file mode 100644
index 000000000..fc8ee2eca
--- /dev/null
+++ b/.idea/libraries/teavm_tooling_1_0_0_SNAPSHOT.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/install_artifacts_for_idea.xml b/.idea/runConfigurations/install_artifacts_for_idea.xml
new file mode 100644
index 000000000..7a8853f9b
--- /dev/null
+++ b/.idea/runConfigurations/install_artifacts_for_idea.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/install_core_artifact.xml b/.idea/runConfigurations/install_core_artifact.xml
new file mode 100644
index 000000000..efd598046
--- /dev/null
+++ b/.idea/runConfigurations/install_core_artifact.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/install_tooling_artifact.xml b/.idea/runConfigurations/install_tooling_artifact.xml
new file mode 100644
index 000000000..6998c9525
--- /dev/null
+++ b/.idea/runConfigurations/install_tooling_artifact.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/classlib/pom.xml b/classlib/pom.xml
index f7ebe48b8..357e463c3 100644
--- a/classlib/pom.xml
+++ b/classlib/pom.xml
@@ -64,6 +64,11 @@
teavm-jso-impl
${project.version}
+
+ org.ow2.asm
+ asm-debug-all
+ provided
+
com.google.code.gson
gson
@@ -107,6 +112,12 @@
org.codehaus.mojo
exec-maven-plugin
1.2.1
+
+
+ org.ow2.asm
+ asm-debug-all
+
+
generate-classlib-doc
diff --git a/classlib/teavm-classlib.iml b/classlib/teavm-classlib.iml
index 35767f8a2..d479eb805 100644
--- a/classlib/teavm-classlib.iml
+++ b/classlib/teavm-classlib.iml
@@ -11,7 +11,6 @@
-
@@ -31,19 +30,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/pom.xml b/core/pom.xml
index 92c112da5..1199992a2 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -72,6 +72,33 @@
org.apache.maven.plugins
maven-javadoc-plugin
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 2.4.3
+
+
+ package
+
+ shade
+
+
+ true
+
+
+ org.ow2.asm:asm-debug-all
+
+
+
+
+ org.objectweb.asm
+ org.teavm.asm
+
+
+
+
+
+
org.apache.felix
maven-bundle-plugin
diff --git a/core/teavm-core.iml b/core/teavm-core.iml
index 4f8549b6a..f41b2faab 100644
--- a/core/teavm-core.iml
+++ b/core/teavm-core.iml
@@ -4,7 +4,6 @@
-
@@ -28,7 +27,7 @@
-
+
diff --git a/extras-slf4j/teavm-extras-slf4j.iml b/extras-slf4j/teavm-extras-slf4j.iml
index ff38459f4..46a294f62 100644
--- a/extras-slf4j/teavm-extras-slf4j.iml
+++ b/extras-slf4j/teavm-extras-slf4j.iml
@@ -12,7 +12,6 @@
-
diff --git a/html4j/teavm-html4j.iml b/html4j/teavm-html4j.iml
index ed9502aa5..5bd4bc0d3 100644
--- a/html4j/teavm-html4j.iml
+++ b/html4j/teavm-html4j.iml
@@ -21,7 +21,6 @@
-
diff --git a/jso/impl/teavm-jso-impl.iml b/jso/impl/teavm-jso-impl.iml
index 2f7ffc268..e2750eeef 100644
--- a/jso/impl/teavm-jso-impl.iml
+++ b/jso/impl/teavm-jso-impl.iml
@@ -12,12 +12,11 @@
-
-
-
+
+
-
+
diff --git a/platform/teavm-platform.iml b/platform/teavm-platform.iml
index 869f418fe..7b5b4d479 100644
--- a/platform/teavm-platform.iml
+++ b/platform/teavm-platform.iml
@@ -4,7 +4,6 @@
-
@@ -25,7 +24,6 @@
-
diff --git a/samples/async/teavm-samples-async.iml b/samples/async/teavm-samples-async.iml
index 7844dfe1a..47f1da0da 100644
--- a/samples/async/teavm-samples-async.iml
+++ b/samples/async/teavm-samples-async.iml
@@ -24,9 +24,8 @@
-
+
-
diff --git a/samples/benchmark/teavm-samples-benchmark.iml b/samples/benchmark/teavm-samples-benchmark.iml
index 330f1bcee..8a6400fda 100644
--- a/samples/benchmark/teavm-samples-benchmark.iml
+++ b/samples/benchmark/teavm-samples-benchmark.iml
@@ -36,7 +36,6 @@
-
diff --git a/samples/hello/teavm-samples-hello.iml b/samples/hello/teavm-samples-hello.iml
index e9ec0ccee..4d3248624 100644
--- a/samples/hello/teavm-samples-hello.iml
+++ b/samples/hello/teavm-samples-hello.iml
@@ -26,7 +26,6 @@
-
diff --git a/samples/kotlin/teavm-samples-kotlin.iml b/samples/kotlin/teavm-samples-kotlin.iml
index 7ace2400d..8a3e243ee 100644
--- a/samples/kotlin/teavm-samples-kotlin.iml
+++ b/samples/kotlin/teavm-samples-kotlin.iml
@@ -30,7 +30,6 @@
-
diff --git a/samples/scala/teavm-samples-scala.iml b/samples/scala/teavm-samples-scala.iml
index 136baffb9..06ee848e1 100644
--- a/samples/scala/teavm-samples-scala.iml
+++ b/samples/scala/teavm-samples-scala.iml
@@ -26,7 +26,6 @@
-
diff --git a/samples/storage/teavm-samples-storage.iml b/samples/storage/teavm-samples-storage.iml
index 2479ff0fa..eec4082b0 100644
--- a/samples/storage/teavm-samples-storage.iml
+++ b/samples/storage/teavm-samples-storage.iml
@@ -26,7 +26,6 @@
-
diff --git a/samples/video/teavm-samples-video.iml b/samples/video/teavm-samples-video.iml
index 2479ff0fa..eec4082b0 100644
--- a/samples/video/teavm-samples-video.iml
+++ b/samples/video/teavm-samples-video.iml
@@ -26,7 +26,6 @@
-
diff --git a/tests/teavm-tests.iml b/tests/teavm-tests.iml
index 5e8336242..0fa8e3b14 100644
--- a/tests/teavm-tests.iml
+++ b/tests/teavm-tests.iml
@@ -12,7 +12,6 @@
-
diff --git a/tools/chrome-rdp/teavm-chrome-rdp.iml b/tools/chrome-rdp/teavm-chrome-rdp.iml
index 698c7b466..bafebaf52 100644
--- a/tools/chrome-rdp/teavm-chrome-rdp.iml
+++ b/tools/chrome-rdp/teavm-chrome-rdp.iml
@@ -4,7 +4,6 @@
-
@@ -46,7 +45,6 @@
-
diff --git a/tools/cli/teavm-cli.iml b/tools/cli/teavm-cli.iml
index a3f76502e..f1cd28fdb 100644
--- a/tools/cli/teavm-cli.iml
+++ b/tools/cli/teavm-cli.iml
@@ -9,19 +9,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/core/teavm-tooling.iml b/tools/core/teavm-tooling.iml
index fe89ce587..298bb6085 100644
--- a/tools/core/teavm-tooling.iml
+++ b/tools/core/teavm-tooling.iml
@@ -4,7 +4,6 @@
-
@@ -25,7 +24,6 @@
-
diff --git a/tools/idea/jps-plugin/teavm-jps-plugin.iml b/tools/idea/jps-plugin/teavm-jps-plugin.iml
index 229457593..b50dcbc95 100644
--- a/tools/idea/jps-plugin/teavm-jps-plugin.iml
+++ b/tools/idea/jps-plugin/teavm-jps-plugin.iml
@@ -11,8 +11,9 @@
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/tools/idea/teavm-idea-plugin.iml b/tools/idea/teavm-idea-plugin.iml
index ea0f494f2..c91659d49 100644
--- a/tools/idea/teavm-idea-plugin.iml
+++ b/tools/idea/teavm-idea-plugin.iml
@@ -12,6 +12,10 @@
-
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/maven/plugin/teavm-maven-plugin.iml b/tools/maven/plugin/teavm-maven-plugin.iml
index 66a1d1672..8171792fa 100644
--- a/tools/maven/plugin/teavm-maven-plugin.iml
+++ b/tools/maven/plugin/teavm-maven-plugin.iml
@@ -42,7 +42,6 @@
-