diff --git a/src/main/java/bdv/tools/RecordMaxProjectionDialog.java b/src/main/java/bdv/tools/RecordMaxProjectionDialog.java
index 0ed579b48f162f08529b02f1cf9c177fe90af14a..15c5f9c26da246003797d1f05bab605a06e444d4 100644
--- a/src/main/java/bdv/tools/RecordMaxProjectionDialog.java
+++ b/src/main/java/bdv/tools/RecordMaxProjectionDialog.java
@@ -75,7 +75,7 @@ import net.imglib2.realtransform.AffineTransform3D;
 import net.imglib2.type.numeric.ARGBType;
 import net.imglib2.ui.OverlayRenderer;
 import net.imglib2.ui.PainterThread;
-import net.imglib2.ui.RenderTarget;
+import bdv.viewer.render.RenderTarget;
 import net.imglib2.util.LinAlgHelpers;
 
 public class RecordMaxProjectionDialog extends JDialog implements OverlayRenderer
diff --git a/src/main/java/bdv/tools/RecordMovieDialog.java b/src/main/java/bdv/tools/RecordMovieDialog.java
index 3b8dd3fceab1fe1c1d6e148c3ff2f9a41cbeb5da..3c1ee091e778a7fbf9612960c9e030ca466d87c6 100644
--- a/src/main/java/bdv/tools/RecordMovieDialog.java
+++ b/src/main/java/bdv/tools/RecordMovieDialog.java
@@ -69,7 +69,7 @@ import javax.swing.event.ChangeListener;
 import net.imglib2.realtransform.AffineTransform3D;
 import net.imglib2.ui.OverlayRenderer;
 import net.imglib2.ui.PainterThread;
-import net.imglib2.ui.RenderTarget;
+import bdv.viewer.render.RenderTarget;
 
 public class RecordMovieDialog extends JDialog implements OverlayRenderer
 {
diff --git a/src/main/java/bdv/tools/boundingbox/TransformedBoxOverlay.java b/src/main/java/bdv/tools/boundingbox/TransformedBoxOverlay.java
index 97a127982b9ca1d8dc18a45a2953540156921014..2b274641327f97916c6f5c37e2ff67395c663b1f 100644
--- a/src/main/java/bdv/tools/boundingbox/TransformedBoxOverlay.java
+++ b/src/main/java/bdv/tools/boundingbox/TransformedBoxOverlay.java
@@ -46,7 +46,7 @@ import net.imglib2.Interval;
 import net.imglib2.RealInterval;
 import net.imglib2.realtransform.AffineTransform3D;
 import net.imglib2.ui.OverlayRenderer;
-import net.imglib2.ui.TransformListener;
+import bdv.viewer.TransformListener;
 
 import org.scijava.listeners.ChangeListener;
 import org.scijava.listeners.ListenableVar;
diff --git a/src/main/java/bdv/tools/transformation/ManualTransformationEditor.java b/src/main/java/bdv/tools/transformation/ManualTransformationEditor.java
index 976eab5c11f4251b0693ca04f1a0d5e7a344a7c3..d0f9146ba36c40c5a1f6b7d5be222052e1331973 100644
--- a/src/main/java/bdv/tools/transformation/ManualTransformationEditor.java
+++ b/src/main/java/bdv/tools/transformation/ManualTransformationEditor.java
@@ -39,7 +39,7 @@ import javax.swing.ActionMap;
 import javax.swing.InputMap;
 import javax.swing.KeyStroke;
 import net.imglib2.realtransform.AffineTransform3D;
-import net.imglib2.ui.TransformListener;
+import bdv.viewer.TransformListener;
 import org.scijava.listeners.Listeners;
 import org.scijava.ui.behaviour.util.InputActionBindings;
 import org.scijava.ui.behaviour.util.RunnableAction;
diff --git a/src/main/java/net/imglib2/ui/TransformListener.java b/src/main/java/bdv/viewer/TransformListener.java
similarity index 98%
rename from src/main/java/net/imglib2/ui/TransformListener.java
rename to src/main/java/bdv/viewer/TransformListener.java
index 9993a378fb9e63f4bbfd9a066a29a671c51c5712..0f5aa796e490dbb79a3d67d1090dfe7d8a82d3f0 100644
--- a/src/main/java/net/imglib2/ui/TransformListener.java
+++ b/src/main/java/bdv/viewer/TransformListener.java
@@ -31,7 +31,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  * #L%
  */
-package net.imglib2.ui;
+package bdv.viewer;
 
 public interface TransformListener< A >
 {
diff --git a/src/main/java/bdv/viewer/ViewerPanel.java b/src/main/java/bdv/viewer/ViewerPanel.java
index 4d959ec698559bca77627a4a17c4329a8353d97b..f45b44e8d2b32ee7fc0c35ab8ee332c2881d4c00 100644
--- a/src/main/java/bdv/viewer/ViewerPanel.java
+++ b/src/main/java/bdv/viewer/ViewerPanel.java
@@ -85,7 +85,6 @@ import net.imglib2.ui.InteractiveDisplayCanvas;
 import net.imglib2.ui.OverlayRenderer;
 import net.imglib2.ui.PainterThread;
 import net.imglib2.ui.TransformEventHandler;
-import net.imglib2.ui.TransformListener;
 import net.imglib2.util.LinAlgHelpers;
 import org.scijava.listeners.Listeners;
 
diff --git a/src/main/java/bdv/viewer/render/MultiResolutionRenderer.java b/src/main/java/bdv/viewer/render/MultiResolutionRenderer.java
index 46cf5ed3a3b25b59a8fa8e5f776ac29505b92286..89b26654f4f8b6613204a6410c4f37ff7e3905ee 100644
--- a/src/main/java/bdv/viewer/render/MultiResolutionRenderer.java
+++ b/src/main/java/bdv/viewer/render/MultiResolutionRenderer.java
@@ -37,7 +37,6 @@ import net.imglib2.cache.iotiming.CacheIoTiming;
 import net.imglib2.realtransform.AffineTransform3D;
 import net.imglib2.type.numeric.ARGBType;
 import net.imglib2.ui.PainterThread;
-import net.imglib2.ui.RenderTarget;
 import net.imglib2.util.Intervals;
 
 import bdv.cache.CacheControl;
diff --git a/src/main/java/net/imglib2/ui/RenderTarget.java b/src/main/java/bdv/viewer/render/RenderTarget.java
similarity index 88%
rename from src/main/java/net/imglib2/ui/RenderTarget.java
rename to src/main/java/bdv/viewer/render/RenderTarget.java
index 20ac6ad4376fbd55a563e8c7430a107898c37e1d..7a23c607e26ad6d0eaaa7e6935f7008926f64d95 100644
--- a/src/main/java/net/imglib2/ui/RenderTarget.java
+++ b/src/main/java/bdv/viewer/render/RenderTarget.java
@@ -31,20 +31,18 @@
  * POSSIBILITY OF SUCH DAMAGE.
  * #L%
  */
-package net.imglib2.ui;
+package bdv.viewer.render;
 
 import bdv.viewer.render.RenderResult;
-import java.awt.image.BufferedImage;
-import net.imglib2.ui.overlay.BufferedImageOverlayRenderer;
 
 /**
- * Receiver for a {@link BufferedImage} (to be drawn onto a canvas later).
+ * Receiver for a rendered image (to be drawn onto a canvas later).
  * <p>
  * A renderer will render source data into a {@link RenderResult} and
- * provide this to a {@link RenderTarget}.
+ * provide this to the {@code RenderTarget}.
  * <p>
- * See {@link BufferedImageOverlayRenderer}, which is both a {@code RenderTarget} and
- * an {@link OverlayRenderer} that draws the {@code RenderResult}.
+ * See {@code BufferedImageOverlayRenderer}, which is both a {@code RenderTarget} and
+ * an {@code OverlayRenderer} that draws the {@code RenderResult}.
  *
  * @author Tobias Pietzsch
  */
diff --git a/src/main/java/net/imglib2/ui/overlay/BufferedImageOverlayRenderer.java b/src/main/java/net/imglib2/ui/overlay/BufferedImageOverlayRenderer.java
index 7665fc53b7c57f7935b64ae6756934a21dbe94ab..505f5d2d94376047201155947c77250835beada1 100644
--- a/src/main/java/net/imglib2/ui/overlay/BufferedImageOverlayRenderer.java
+++ b/src/main/java/net/imglib2/ui/overlay/BufferedImageOverlayRenderer.java
@@ -42,8 +42,8 @@ import java.awt.RenderingHints;
 import java.awt.image.BufferedImage;
 import net.imglib2.realtransform.AffineTransform3D;
 import net.imglib2.ui.OverlayRenderer;
-import net.imglib2.ui.RenderTarget;
-import net.imglib2.ui.TransformListener;
+import bdv.viewer.render.RenderTarget;
+import bdv.viewer.TransformListener;
 import org.scijava.listeners.Listeners;
 
 /**