diff --git a/kernel/base/build.gradle b/kernel/base/build.gradle
index 5aefde1e2d..b96632f1df 100644
--- a/kernel/base/build.gradle
+++ b/kernel/base/build.gradle
@@ -39,7 +39,9 @@ dependencies {
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.6'
compile group: 'org.apache.commons', name: 'commons-text', version: '1.1'
compile group: 'org.apache.maven.shared', name: 'maven-invoker', version: '3.0.0'
- compile group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.22'
+ compile group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25'
+ compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
+
compile group: "org.zeromq", name: "jeromq", version: "0.3.5"
compile group: 'org.apache.ivy', name: 'ivy', version: '2.4.0'
diff --git a/kernel/base/out/production/resources/PomTemplateMagicCommand.xml b/kernel/base/out/production/resources/PomTemplateMagicCommand.xml
new file mode 100644
index 0000000000..4ca17020c9
--- /dev/null
+++ b/kernel/base/out/production/resources/PomTemplateMagicCommand.xml
@@ -0,0 +1,44 @@
+
+
+ 4.0.0
+
+ com.twosigma.beakerx
+ magicCommandDownloader
+ 1.0-SNAPSHOT
+
+
+
+ clojureRepo
+ http://clojars.org/repo
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.0.2
+
+
+ copy-dependencies
+ validate
+
+ copy-dependencies
+
+
+ pathToNotebookJars
+ false
+ false
+ true
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kernel/base/src/main/resources/logback.xml b/kernel/base/out/production/resources/logback.xml
similarity index 100%
rename from kernel/base/src/main/resources/logback.xml
rename to kernel/base/out/production/resources/logback.xml
diff --git a/kernel/base/out/test/resources/PomTemplateMagicCommand.xml b/kernel/base/out/test/resources/PomTemplateMagicCommand.xml
new file mode 100644
index 0000000000..63bd5fc69c
--- /dev/null
+++ b/kernel/base/out/test/resources/PomTemplateMagicCommand.xml
@@ -0,0 +1,44 @@
+
+
+ 4.0.0
+
+ com.twosigma.beakerx
+ magicCommandDownloader
+ 1.0-SNAPSHOT
+
+
+
+ project-repo
+ file://${project.basedir}/build/testMvnCache
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.0.2
+
+
+ copy-dependencies
+ validate
+
+ copy-dependencies
+
+
+ pathToNotebookJars
+ false
+ false
+ true
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kernel/base/src/main/java/com/twosigma/beakerx/evaluator/BaseEvaluator.java b/kernel/base/src/main/java/com/twosigma/beakerx/evaluator/BaseEvaluator.java
index 290d028272..c206567275 100644
--- a/kernel/base/src/main/java/com/twosigma/beakerx/evaluator/BaseEvaluator.java
+++ b/kernel/base/src/main/java/com/twosigma/beakerx/evaluator/BaseEvaluator.java
@@ -26,7 +26,6 @@
import org.apache.commons.io.FileUtils;
import java.io.File;
-import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Collection;
diff --git a/kernel/clojure/src/main/resources/logback.xml b/kernel/clojure/src/main/resources/logback.xml
new file mode 100644
index 0000000000..0b2de4f1ad
--- /dev/null
+++ b/kernel/clojure/src/main/resources/logback.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+ true
+ ../../logs/jupyter-scala-kernel.log
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/kernel/groovy/src/main/java/com/twosigma/beakerx/groovy/evaluator/GroovyEvaluator.java b/kernel/groovy/src/main/java/com/twosigma/beakerx/groovy/evaluator/GroovyEvaluator.java
index 5d23ec3890..52ce93b154 100644
--- a/kernel/groovy/src/main/java/com/twosigma/beakerx/groovy/evaluator/GroovyEvaluator.java
+++ b/kernel/groovy/src/main/java/com/twosigma/beakerx/groovy/evaluator/GroovyEvaluator.java
@@ -27,7 +27,6 @@
import com.twosigma.beakerx.jvm.threads.CellExecutor;
import com.twosigma.beakerx.kernel.Classpath;
import com.twosigma.beakerx.kernel.EvaluatorParameters;
-import com.twosigma.beakerx.kernel.Imports;
import com.twosigma.beakerx.kernel.PathToJar;
import groovy.lang.Binding;
import groovy.lang.GroovyClassLoader;
diff --git a/kernel/groovy/src/main/resources/logback.xml b/kernel/groovy/src/main/resources/logback.xml
new file mode 100644
index 0000000000..cd9038ba65
--- /dev/null
+++ b/kernel/groovy/src/main/resources/logback.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+ true
+ ../../logs/jupyter-groovy-kernel.log
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/kernel/java/src/main/resources/logback.xml b/kernel/java/src/main/resources/logback.xml
new file mode 100644
index 0000000000..3823f2c357
--- /dev/null
+++ b/kernel/java/src/main/resources/logback.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+ true
+ ../../logs/jupyter-java-kernel.log
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/kernel/kotlin/src/main/resources/logback.xml b/kernel/kotlin/src/main/resources/logback.xml
new file mode 100644
index 0000000000..6daff05b77
--- /dev/null
+++ b/kernel/kotlin/src/main/resources/logback.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+ true
+ ../../logs/jupyter-kotlin-kernel.log
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/kernel/scala/src/main/resources/logback.xml b/kernel/scala/src/main/resources/logback.xml
new file mode 100644
index 0000000000..7f6af2ab2e
--- /dev/null
+++ b/kernel/scala/src/main/resources/logback.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+ true
+ ../../logs/jupyter-scala-kernel.log
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/kernel/sql/src/main/resources/logback.xml b/kernel/sql/src/main/resources/logback.xml
new file mode 100644
index 0000000000..ccf37fc8ad
--- /dev/null
+++ b/kernel/sql/src/main/resources/logback.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+
+
+
+
+ %date %-5level [%class{0}.%M:%line] %msg%n
+
+ true
+ ../../logs/jupyter-sql-kernel.log
+
+
+
+
+
+
+
+
+
+
+
+