diff --git a/quic/tools/quic_epoll_server_factory.cc b/quic/tools/quic_epoll_server_factory.cc
new file mode 100644
index 0000000..f0c206a
--- /dev/null
+++ b/quic/tools/quic_epoll_server_factory.cc
@@ -0,0 +1,18 @@
+// Copyright (c) 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "net/third_party/quiche/src/quic/tools/quic_epoll_server_factory.h"
+
+#include "net/third_party/quiche/src/quic/tools/quic_server.h"
+
+namespace quic {
+
+std::unique_ptr<quic::QuicSpdyServerBase> QuicEpollServerFactory::CreateServer(
+    quic::QuicSimpleServerBackend* backend,
+    std::unique_ptr<quic::ProofSource> proof_source) {
+  return quic::QuicMakeUnique<quic::QuicServer>(std::move(proof_source),
+                                                backend);
+}
+
+}  // namespace quic
diff --git a/quic/tools/quic_epoll_server_factory.h b/quic/tools/quic_epoll_server_factory.h
new file mode 100644
index 0000000..391f3cd
--- /dev/null
+++ b/quic/tools/quic_epoll_server_factory.h
@@ -0,0 +1,26 @@
+// Copyright (c) 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef QUICHE_QUIC_TOOLS_EPOLL_SERVER_FACTORY_H_
+#define QUICHE_QUIC_TOOLS_EPOLL_SERVER_FACTORY_H_
+
+#include "net/third_party/quiche/src/quic/platform/api/quic_epoll.h"
+#include "net/third_party/quiche/src/quic/tools/quic_toy_server.h"
+
+namespace quic {
+
+// Factory creating QuicServer instances.
+class QuicEpollServerFactory : public QuicToyServer::ServerFactory {
+ public:
+  std::unique_ptr<QuicSpdyServerBase> CreateServer(
+      QuicSimpleServerBackend* backend,
+      std::unique_ptr<ProofSource> proof_source) override;
+
+ private:
+  QuicEpollServer epoll_server_;
+};
+
+}  // namespace quic
+
+#endif  // QUICHE_QUIC_TOOLS_EPOLL_SERVER_FACTORY_H_
diff --git a/quic/tools/quic_server_bin.cc b/quic/tools/quic_server_bin.cc
index bd13913..541f6f9 100644
--- a/quic/tools/quic_server_bin.cc
+++ b/quic/tools/quic_server_bin.cc
@@ -9,21 +9,9 @@
 
 #include "net/third_party/quiche/src/quic/core/quic_versions.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_flags.h"
-#include "net/third_party/quiche/src/quic/platform/api/quic_ptr_util.h"
-#include "net/third_party/quiche/src/quic/tools/quic_server.h"
-#include "net/third_party/quiche/src/quic/tools/quic_simple_server_backend.h"
+#include "net/third_party/quiche/src/quic/tools/quic_epoll_server_factory.h"
 #include "net/third_party/quiche/src/quic/tools/quic_toy_server.h"
 
-class SimpleServerFactory : public quic::QuicToyServer::ServerFactory {
- public:
-  std::unique_ptr<quic::QuicSpdyServerBase> CreateServer(
-      quic::QuicSimpleServerBackend* backend,
-      std::unique_ptr<quic::ProofSource> proof_source) override {
-    return quic::QuicMakeUnique<quic::QuicServer>(std::move(proof_source),
-                                                  backend);
-  }
-};
-
 int main(int argc, char* argv[]) {
   const char* usage = "Usage: quic_server [options]";
   std::vector<std::string> non_option_args =
@@ -34,7 +22,7 @@
   }
 
   quic::QuicToyServer::MemoryCacheBackendFactory backend_factory;
-  SimpleServerFactory server_factory;
+  quic::QuicEpollServerFactory server_factory;
   quic::QuicToyServer server(&backend_factory, &server_factory);
   return server.Start();
 }
