diff --git a/cmd/server/main.go b/cmd/server/main.go
index 00f562b8ea6c23ef1a152e910f69c228d5fdde31..d5f03d0f323808b96a9acaeeec96846f48aaae2b 100644
--- a/cmd/server/main.go
+++ b/cmd/server/main.go
@@ -345,7 +345,7 @@ func main() {
 		quicConfig.TLSCert = cert
 	}
 
-	serverCfg := server.ServerConfig{
+	serverCfg := server.Config{
 		Obfs4Config: *obfs4Config,
 		StateDir:    cfg.stateDir,
 		PortSeed:    cfg.portSeed,
diff --git a/server/server.go b/server/server.go
new file mode 100644
index 0000000000000000000000000000000000000000..314d8c9ebf30f3d87501960d202965c516bfed21
--- /dev/null
+++ b/server/server.go
@@ -0,0 +1,30 @@
+package server
+
+import "0xacab.org/leap/obfsvpn/obfsvpn"
+
+const transportName = "obfs4"
+
+// Obfs4Config is an obfs4 specific configuration object
+type Obfs4Config struct {
+	NodeID     string `json:"node-id"`
+	PrivateKey string `json:"private-key"`
+	PublicKey  string `json:"public-key"`
+	DRBGSeed   string `json:"drbg-seed"`
+	IatMode    int    `json:"iat-mode"`
+}
+
+// Config is the configuration for the obfsvpn server
+type Config struct {
+	OpenvpnAddr     string
+	Obfs4Config     Obfs4Config
+	StateDir        string
+	Obfs4ListenIP   string
+	Obfs4ListenPort int
+	HoppingEnabled  bool
+	PortSeed        int64
+	PortCount       uint
+	MinHopPort      uint
+	MaxHopPort      uint
+	KCPConfig       obfsvpn.KCPConfig
+	QUICConfig      obfsvpn.QUICConfig
+}
diff --git a/server/tcpserver.go b/server/tcpserver.go
index 7ed5b9e77398243c3e9cd55f719c808626480b1a..e9c17c277e38f91f8e92be6cc18db16b90832798 100644
--- a/server/tcpserver.go
+++ b/server/tcpserver.go
@@ -15,44 +15,17 @@ import (
 	pt "gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/goptlib"
 )
 
-const transportName = "obfs4"
-
-// Obfs4Config is an obfs4 specific configuration object
-type Obfs4Config struct {
-	NodeID     string `json:"node-id"`
-	PrivateKey string `json:"private-key"`
-	PublicKey  string `json:"public-key"`
-	DRBGSeed   string `json:"drbg-seed"`
-	IatMode    int    `json:"iat-mode"`
-}
-
-// ServerConfig is the configuration for the obfsvpn server
-type ServerConfig struct {
-	OpenvpnAddr     string
-	Obfs4Config     Obfs4Config
-	StateDir        string
-	Obfs4ListenIP   string
-	Obfs4ListenPort int
-	HoppingEnabled  bool
-	PortSeed        int64
-	PortCount       uint
-	MinHopPort      uint
-	MaxHopPort      uint
-	KCPConfig       obfsvpn.KCPConfig
-	QUICConfig      obfsvpn.QUICConfig
-}
-
 // TCPServer is a obfsvpn server
 type TCPServer struct {
 	ctx    context.Context
-	cfg    ServerConfig
+	cfg    Config
 	debug  *log.Logger
 	logger *log.Logger
 	stop   context.CancelFunc
 }
 
 // NewTCPServer returns a new TCPServer
-func NewTCPServer(ctx context.Context, stop context.CancelFunc, cfg ServerConfig, logger, debug *log.Logger) BridgeServer {
+func NewTCPServer(ctx context.Context, stop context.CancelFunc, cfg Config, logger, debug *log.Logger) BridgeServer {
 	return &TCPServer{
 		ctx:    ctx,
 		stop:   stop,
diff --git a/server/udpserver.go b/server/udpserver.go
index c7ee2e81b577f431aa1fd3f4a571f4d57a6a72f3..fee88f082c2d3b30ea5b059888dea736b92870ea 100644
--- a/server/udpserver.go
+++ b/server/udpserver.go
@@ -13,7 +13,7 @@ import (
 
 // UDPServer is a obfsvpn server
 type UDPServer struct {
-	cfg    ServerConfig
+	cfg    Config
 	logger *log.Logger
 	debug  *log.Logger
 	ctx    context.Context
@@ -21,7 +21,7 @@ type UDPServer struct {
 }
 
 // NewUDPServer returns a new UDPServer
-func NewUDPServer(ctx context.Context, stop context.CancelFunc, cfg ServerConfig, logger, debug *log.Logger) BridgeServer {
+func NewUDPServer(ctx context.Context, stop context.CancelFunc, cfg Config, logger, debug *log.Logger) BridgeServer {
 	return &UDPServer{
 		ctx:    ctx,
 		stop:   stop,