diff --git a/Gopkg.lock b/Gopkg.lock
index 021cdaf..fa9266d 100644
--- a/Gopkg.lock
+++ b/Gopkg.lock
@@ -11,6 +11,14 @@
 
 [[projects]]
   branch = "master"
+  digest = "1:3f0ca72ea4d996a5b6016e0375b747c7bbd43dcaf3406ec6a61d349a16376cf1"
+  name = "code.hackerspace.pl/q3k/mirko"
+  packages = ["."]
+  pruneopts = ""
+  revision = "aa81aa205ff6b570606c2f71542d35d426eabb7d"
+
+[[projects]]
+  branch = "master"
   digest = "1:14b1158c5d9600d72f8ac88acd9c68a90e9f2fc021a9fc7f3be1274eb0b4ed5f"
   name = "code.hackerspace.pl/q3k/topo"
   packages = ["proto/control"]
@@ -185,17 +193,15 @@
   analyzer-name = "dep"
   analyzer-version = 1
   input-imports = [
-    "code.hackerspace.pl/q3k/hspki",
+    "code.hackerspace.pl/q3k/mirko",
     "code.hackerspace.pl/q3k/topo/proto/control",
     "github.com/golang/glog",
     "github.com/golang/protobuf/proto",
-    "github.com/q3k/statusz",
     "github.com/ziutek/telnet",
     "golang.org/x/net/context",
     "golang.org/x/net/trace",
     "google.golang.org/grpc",
     "google.golang.org/grpc/codes",
-    "google.golang.org/grpc/reflection",
     "google.golang.org/grpc/status",
   ]
   solver-name = "gps-cdcl"
diff --git a/main.go b/main.go
index a1ea7ca..ed3520a 100644
--- a/main.go
+++ b/main.go
@@ -4,20 +4,14 @@
 	"context"
 	"flag"
 	"fmt"
-	"net"
-	"net/http"
 	"reflect"
 	"strconv"
 	"strings"
 
-	"code.hackerspace.pl/q3k/hspki"
+	"code.hackerspace.pl/q3k/mirko"
 	"github.com/golang/glog"
-	"github.com/q3k/statusz"
 	"github.com/ziutek/telnet"
-	"golang.org/x/net/trace"
-	"google.golang.org/grpc"
 	"google.golang.org/grpc/codes"
-	"google.golang.org/grpc/reflection"
 	"google.golang.org/grpc/status"
 
 	pb "code.hackerspace.pl/q3k/m6220-proxy/proto"
@@ -25,8 +19,6 @@
 )
 
 var (
-	flagListenAddress  string
-	flagDebugAddress   string
 	flagSwitchAddress  string
 	flagSwitchUsername string
 	flagSwitchPassword string
@@ -260,8 +252,6 @@
 }
 
 func main() {
-	flag.StringVar(&flagListenAddress, "listen_address", "127.0.0.1:42000", "Address to listen on for gRPC")
-	flag.StringVar(&flagDebugAddress, "debug_address", "127.0.0.1:42001", "Address to listen on for Debug HTTP")
 	flag.StringVar(&flagSwitchAddress, "switch_address", "127.0.0.1:23", "Telnet address of M6220")
 	flag.StringVar(&flagSwitchUsername, "switch_username", "admin", "Switch login username")
 	flag.StringVar(&flagSwitchPassword, "switch_password", "admin", "Switch login password")
@@ -271,48 +261,17 @@
 		connectionSemaphore: make(chan int, 1),
 	}
 
-	grpc.EnableTracing = true
-	grpcLis, err := net.Listen("tcp", flagListenAddress)
-	if err != nil {
-		glog.Exitf("Could not listen on %v: %v", flagListenAddress, err)
-	}
-	grpcSrv := grpc.NewServer(hspki.WithServerHSPKI()...)
-	pb.RegisterM6220ProxyServer(grpcSrv, s)
-	tpb.RegisterSwitchControlServer(grpcSrv, s)
-	reflection.Register(grpcSrv)
-
-	glog.Infof("Starting gRPC on %v", flagListenAddress)
-	go func() {
-		if err := grpcSrv.Serve(grpcLis); err != nil {
-			glog.Exitf("Could not start gRPC: %v", err)
-		}
-	}()
-
-	if flagDebugAddress != "" {
-		glog.Infof("Starting debug on %v", flagDebugAddress)
-		httpMux := http.NewServeMux()
-		httpMux.HandleFunc("/debug/status", statusz.StatusHandler)
-		httpMux.HandleFunc("/debug/requests", trace.Traces)
-		httpMux.HandleFunc("/", statusz.StatusHandler)
-
-		httpLis, err := net.Listen("tcp", flagDebugAddress)
-		if err != nil {
-			glog.Exitf("Could not listen on %v: %v", flagDebugAddress, err)
-		}
-		httpSrv := &http.Server{
-			Addr:    flagDebugAddress,
-			Handler: httpMux,
-		}
-
-		go func() {
-			if err := httpSrv.Serve(httpLis); err != nil {
-				glog.Exitf("Could not start HTTP server: %v", err)
-			}
-		}()
-
+	m := mirko.New()
+	if err := m.Listen(); err != nil {
+		glog.Exitf("Listen(): %v", err)
 	}
 
-	glog.Infof("Running!")
+	pb.RegisterM6220ProxyServer(m.GRPC(), s)
+	tpb.RegisterSwitchControlServer(m.GRPC(), s)
+
+	if err := m.Serve(); err != nil {
+		glog.Exitf("Serve(): %v", err)
+	}
 
 	select {}
 }
