diff --git a/Makefile b/Makefile
index d1529767b2d77ceeaeb1ae2467d61a293db99f7d..2ba3fa3c2fe70860b76ce09ad65fcba0cee994aa 100644
--- a/Makefile
+++ b/Makefile
@@ -55,11 +55,11 @@ test-style:
 	@if [ $(shell gofmt -e -l -s $(GO_DIRS)) ]; then \
 		echo "gofmt check failed:"; gofmt -e -d -s $(GO_DIRS); exit 1; \
 	fi
-	@for i in . $(GO_DIRS); do \
+	@for i in $(GO_PKGS); do \
 		golint $$i; \
 	done
-	@for i in . $(GO_DIRS); do \
-		go vet github.com/deis/helm-dm/$$i; \
+	@for i in $(GO_DIRS); do \
+		go tool vet $$i; \
 	done
 
 .PHONY: bootstrap \
diff --git a/cmd/helm/chart_upload.go b/cmd/helm/chart_upload.go
index 5e5933af4e94fb5390e72475526b655c78d81a2e..3c872f002259b287feba5a0f03b04c2c87c8b150 100644
--- a/cmd/helm/chart_upload.go
+++ b/cmd/helm/chart_upload.go
@@ -9,7 +9,7 @@ import (
 
 	"github.com/aokoli/goutils"
 	"github.com/codegangsta/cli"
-	"github.com/deis/helm-dm/format"
+	"github.com/deis/helm-dm/pkg/format"
 	"github.com/kubernetes/deployment-manager/chart"
 )
 
diff --git a/cmd/helm/delete.go b/cmd/helm/delete.go
index 985d0ba5f31961c65c1a789524d12eecd5acc4ea..9cb21bf1eb747c65fe2c68ce913787dc35216bd0 100644
--- a/cmd/helm/delete.go
+++ b/cmd/helm/delete.go
@@ -4,7 +4,7 @@ import (
 	"errors"
 
 	"github.com/codegangsta/cli"
-	"github.com/deis/helm-dm/format"
+	"github.com/deis/helm-dm/pkg/format"
 )
 
 func init() {
diff --git a/cmd/helm/dm.go b/cmd/helm/dm.go
index 9419b3fe1be0357d149b06ba43c6adf752f2bba6..74645951327f1976fcae97cbc2bb20b714669d4a 100644
--- a/cmd/helm/dm.go
+++ b/cmd/helm/dm.go
@@ -5,9 +5,9 @@ import (
 	"os"
 
 	"github.com/codegangsta/cli"
-	"github.com/deis/helm-dm/dm"
-	"github.com/deis/helm-dm/format"
-	"github.com/deis/helm-dm/kubectl"
+	"github.com/deis/helm-dm/pkg/dm"
+	"github.com/deis/helm-dm/pkg/format"
+	"github.com/deis/helm-dm/pkg/kubectl"
 )
 
 // ErrAlreadyInstalled indicates that DM is already installed.
diff --git a/cmd/helm/doctor.go b/cmd/helm/doctor.go
index 8568b697237f6a881f2c751e3e3f1e7018cffbc8..97812ccbc10556026e29a266f6314068526d8ec7 100644
--- a/cmd/helm/doctor.go
+++ b/cmd/helm/doctor.go
@@ -2,9 +2,9 @@ package main
 
 import (
 	"github.com/codegangsta/cli"
-	"github.com/deis/helm-dm/dm"
-	"github.com/deis/helm-dm/format"
-	"github.com/deis/helm-dm/kubectl"
+	"github.com/deis/helm-dm/pkg/dm"
+	"github.com/deis/helm-dm/pkg/format"
+	"github.com/deis/helm-dm/pkg/kubectl"
 )
 
 func init() {
diff --git a/cmd/helm/get.go b/cmd/helm/get.go
index 7a9ffa9d5151c05cc901784439a25ab88e31811e..b600e751576b3f68a00fc99bbe08370238b559a5 100644
--- a/cmd/helm/get.go
+++ b/cmd/helm/get.go
@@ -4,7 +4,7 @@ import (
 	"errors"
 
 	"github.com/codegangsta/cli"
-	"github.com/deis/helm-dm/format"
+	"github.com/deis/helm-dm/pkg/format"
 )
 
 func init() {
diff --git a/cmd/helm/helm.go b/cmd/helm/helm.go
index 84ce287e0b0cdec7a25de189e809e830b2d9cfc1..a2f0cb753c10a5529e62276824367576cd5cd3dd 100644
--- a/cmd/helm/helm.go
+++ b/cmd/helm/helm.go
@@ -4,8 +4,8 @@ import (
 	"os"
 
 	"github.com/codegangsta/cli"
-	"github.com/deis/helm-dm/dm"
-	"github.com/deis/helm-dm/format"
+	"github.com/deis/helm-dm/pkg/dm"
+	"github.com/deis/helm-dm/pkg/format"
 )
 
 var version = "0.0.1"
diff --git a/cmd/helm/list.go b/cmd/helm/list.go
index a3ea2f0dfd7e47ea13368431b6be9f4a5c728ba0..2c1bc072ceacd763d726f06af25b585fccb46918 100644
--- a/cmd/helm/list.go
+++ b/cmd/helm/list.go
@@ -2,7 +2,7 @@ package main
 
 import (
 	"github.com/codegangsta/cli"
-	"github.com/deis/helm-dm/format"
+	"github.com/deis/helm-dm/pkg/format"
 )
 
 func init() {
diff --git a/cmd/helm/pack.go b/cmd/helm/pack.go
index eeb612b84341faeb03ff9cd345758b73ef26ea84..44247b605f7f5c5c33f769151a22746bff4cb9f5 100644
--- a/cmd/helm/pack.go
+++ b/cmd/helm/pack.go
@@ -6,7 +6,7 @@ import (
 	"os"
 
 	"github.com/codegangsta/cli"
-	"github.com/deis/helm-dm/format"
+	"github.com/deis/helm-dm/pkg/format"
 	"github.com/kubernetes/deployment-manager/chart"
 )
 
diff --git a/cmd/helm/target.go b/cmd/helm/target.go
index cb06c8e774cafd1cfa77ff6418a5bb677f874b44..b9906f87eb2ff80ff3509292b217bf71e96cc498 100644
--- a/cmd/helm/target.go
+++ b/cmd/helm/target.go
@@ -3,8 +3,8 @@ package main
 import (
 	"fmt"
 
-	"github.com/deis/helm-dm/format"
-	"github.com/deis/helm-dm/kubectl"
+	"github.com/deis/helm-dm/pkg/format"
+	"github.com/deis/helm-dm/pkg/kubectl"
 )
 
 func target(dryRun bool) error {
diff --git a/dm/client.go b/pkg/dm/client.go
similarity index 100%
rename from dm/client.go
rename to pkg/dm/client.go
diff --git a/dm/client_test.go b/pkg/dm/client_test.go
similarity index 100%
rename from dm/client_test.go
rename to pkg/dm/client_test.go
diff --git a/dm/install.go b/pkg/dm/install.go
similarity index 98%
rename from dm/install.go
rename to pkg/dm/install.go
index e1290b29da332e4b05f4afb9ec9458792501d9bf..0894f79c9e6d2978e071738d6636d2aa69d12692 100644
--- a/dm/install.go
+++ b/pkg/dm/install.go
@@ -1,8 +1,8 @@
 package dm
 
 import (
-	"github.com/deis/helm-dm/format"
-	"github.com/deis/helm-dm/kubectl"
+	"github.com/deis/helm-dm/pkg/format"
+	"github.com/deis/helm-dm/pkg/kubectl"
 )
 
 // Install uses kubectl to install the base DM.
diff --git a/dm/transport.go b/pkg/dm/transport.go
similarity index 100%
rename from dm/transport.go
rename to pkg/dm/transport.go
diff --git a/dm/transport_test.go b/pkg/dm/transport_test.go
similarity index 100%
rename from dm/transport_test.go
rename to pkg/dm/transport_test.go
diff --git a/dm/uninstall.go b/pkg/dm/uninstall.go
similarity index 88%
rename from dm/uninstall.go
rename to pkg/dm/uninstall.go
index 4bd6b8c71060b4a567409cd974aee7072f922305..3aea10fbe13d90225440ac48fd939a065ce1ef17 100644
--- a/dm/uninstall.go
+++ b/pkg/dm/uninstall.go
@@ -1,7 +1,7 @@
 package dm
 
 import (
-	"github.com/deis/helm-dm/kubectl"
+	"github.com/deis/helm-dm/pkg/kubectl"
 )
 
 // Uninstall uses kubectl to uninstall the base DM.
diff --git a/format/messages.go b/pkg/format/messages.go
similarity index 100%
rename from format/messages.go
rename to pkg/format/messages.go
diff --git a/kubectl/cluster_info.go b/pkg/kubectl/cluster_info.go
similarity index 100%
rename from kubectl/cluster_info.go
rename to pkg/kubectl/cluster_info.go
diff --git a/kubectl/command.go b/pkg/kubectl/command.go
similarity index 100%
rename from kubectl/command.go
rename to pkg/kubectl/command.go
diff --git a/kubectl/create.go b/pkg/kubectl/create.go
similarity index 100%
rename from kubectl/create.go
rename to pkg/kubectl/create.go
diff --git a/kubectl/create_test.go b/pkg/kubectl/create_test.go
similarity index 100%
rename from kubectl/create_test.go
rename to pkg/kubectl/create_test.go
diff --git a/kubectl/delete.go b/pkg/kubectl/delete.go
similarity index 100%
rename from kubectl/delete.go
rename to pkg/kubectl/delete.go
diff --git a/kubectl/get.go b/pkg/kubectl/get.go
similarity index 100%
rename from kubectl/get.go
rename to pkg/kubectl/get.go
diff --git a/kubectl/get_test.go b/pkg/kubectl/get_test.go
similarity index 100%
rename from kubectl/get_test.go
rename to pkg/kubectl/get_test.go
diff --git a/kubectl/kubectl.go b/pkg/kubectl/kubectl.go
similarity index 100%
rename from kubectl/kubectl.go
rename to pkg/kubectl/kubectl.go
diff --git a/kubectl/kubectl_test.go b/pkg/kubectl/kubectl_test.go
similarity index 100%
rename from kubectl/kubectl_test.go
rename to pkg/kubectl/kubectl_test.go