diff --git a/main.go b/main.go
index 66e8d94..f417f1f 100644
--- a/main.go
+++ b/main.go
@@ -4,17 +4,15 @@
 	"flag"
 	"fmt"
 
+	"code.hackerspace.pl/q3k/mirko"
 	"github.com/golang/glog"
 	"github.com/ybbus/jsonrpc"
+
+	pb "code.hackerspace.pl/q3k/arista-proxy/proto"
 )
 
 var (
-	flagAristaAPI       string
-	flagListenAddress   string
-	flagDebugAddress    string
-	flagCAPath          string
-	flagCertificatePath string
-	flagKeyPath         string
+	flagAristaAPI string
 )
 
 type aristaClient struct {
@@ -39,32 +37,31 @@
 	return nil
 }
 
+type server struct {
+	arista *aristaClient
+}
+
 func main() {
 	flag.StringVar(&flagAristaAPI, "arista_api", "http://admin:password@1.2.3.4:80/command-api", "Arista remote endpoint")
-	flag.StringVar(&flagListenAddress, "listen_address", "127.0.0.1:42000", "gRPC listen address")
-	flag.StringVar(&flagDebugAddress, "debug_address", "127.0.0.1:42001", "Debug HTTP listen address, or empty to disable")
-	flag.StringVar(&flagCAPath, "tls_ca_path", "pki/ca.pem", "Path to PKI CA certificate")
-	flag.StringVar(&flagCertificatePath, "tls_certificate_path", "pki/service.pem", "Path to PKI service certificate")
-	flag.StringVar(&flagKeyPath, "tls_key_path", "pki/service-key.pem", "Path to PKI service private key")
-	flag.Set("logtostderr", "true")
 	flag.Parse()
 
 	arista := &aristaClient{
 		rpc: jsonrpc.NewClient(flagAristaAPI),
 	}
 
-	opts := &serverOpts{
-		listenAddress:      flagListenAddress,
-		debugAddress:       flagDebugAddress,
-		tlsCAPath:          flagCAPath,
-		tlsCertificatePath: flagCertificatePath,
-		tlsKeyPath:         flagKeyPath,
-	}
-	server, err := newServer(opts, arista)
-	if err != nil {
-		glog.Errorf("Could not create server: %v", err)
+	m := mirko.New()
+	if err := m.Listen(); err != nil {
+		glog.Exitf("Listen(): %v", err)
 	}
 
-	glog.Info("Starting up...")
-	server.serveForever()
+	s := &server{
+		arista: arista,
+	}
+	pb.RegisterAristaProxyServer(m.GRPC(), s)
+
+	if err := m.Serve(); err != nil {
+		glog.Exitf("Serve(): %v", err)
+	}
+
+	select {}
 }
