diff --git a/compose.go b/compose.go
new file mode 100644
index 0000000000000000000000000000000000000000..e64e43917b1e8e607339662b612ff19c316d13b9
--- /dev/null
+++ b/compose.go
@@ -0,0 +1,28 @@
+package pixel
+
+// ComposeTarget is a BasicTarget capable of Porter-Duff composition.
+type ComposeTarget interface {
+	BasicTarget
+
+	// SetComposeMethod sets a Porter-Duff composition method to be used.
+	SetComposeMethod(ComposeMethod)
+}
+
+// ComposeMethod is a Porter-Duff composition method.
+type ComposeMethod int
+
+// Here's the list of all available Porter-Duff composition methods. User ComposeOver for the basic
+// alpha blending.
+const (
+	ComposeOver ComposeMethod = iota
+	ComposeIn
+	ComposeOut
+	ComposeAtop
+	ComposeRover
+	ComposeRin
+	ComposeRout
+	ComposeRatop
+	ComposeXor
+	ComposePlus
+	ComposeCopy
+)
diff --git a/interface.go b/interface.go
index c5cb5971281671a6899659bfc29ae31bb5e918e4..9aa5f2eb1325574bf3d6b428ae0763f31f0107c6 100644
--- a/interface.go
+++ b/interface.go
@@ -38,33 +38,6 @@ type BasicTarget interface {
 	SetColorMask(color.Color)
 }
 
-// ComposeTarget is a BasicTarget capable of Porter-Duff composition.
-type ComposeTarget interface {
-	BasicTarget
-
-	// SetComposeMethod sets a Porter-Duff composition method to be used.
-	SetComposeMethod(ComposeMethod)
-}
-
-// ComposeMethod is a Porter-Duff composition method.
-type ComposeMethod int
-
-// Here's the list of all available Porter-Duff composition methods. User ComposeOver for the basic
-// alpha blending.
-const (
-	ComposeOver ComposeMethod = iota
-	ComposeIn
-	ComposeOut
-	ComposeAtop
-	ComposeRover
-	ComposeRin
-	ComposeRout
-	ComposeRatop
-	ComposeXor
-	ComposePlus
-	ComposeCopy
-)
-
 // Triangles represents a list of vertices, where each three vertices form a triangle. (First,
 // second and third is the first triangle, fourth, fifth and sixth is the second triangle, etc.)
 type Triangles interface {