diff --git a/quiche/epoll_server/fake_simple_epoll_server.h b/quiche/epoll_server/fake_simple_epoll_server.h
index 4338afe..62c9dd1 100644
--- a/quiche/epoll_server/fake_simple_epoll_server.h
+++ b/quiche/epoll_server/fake_simple_epoll_server.h
@@ -10,7 +10,6 @@
 
 #include <map>
 
-#include "quiche/epoll_server/platform/api/epoll_export.h"
 #include "quiche/epoll_server/simple_epoll_server.h"
 
 namespace epoll_server {
@@ -19,8 +18,7 @@
 // Unlike the full FakeEpollServer, this only lies about the time but lets
 // fd events operate normally.  Usefully when interacting with real backends
 // but wanting to skip forward in time to trigger timeouts.
-class EPOLL_EXPORT_PRIVATE FakeTimeSimpleEpollServer
-    : public SimpleEpollServer {
+class FakeTimeSimpleEpollServer : public SimpleEpollServer {
  public:
   FakeTimeSimpleEpollServer();
   FakeTimeSimpleEpollServer(const FakeTimeSimpleEpollServer&) = delete;
@@ -53,8 +51,7 @@
   int64_t now_in_usec_;
 };
 
-class EPOLL_EXPORT_PRIVATE FakeSimpleEpollServer
-    : public FakeTimeSimpleEpollServer {
+class FakeSimpleEpollServer : public FakeTimeSimpleEpollServer {
  public:  // type definitions
   using EventQueue = std::multimap<int64_t, struct epoll_event>;
 
diff --git a/quiche/epoll_server/platform/api/epoll_export.h b/quiche/epoll_server/platform/api/epoll_export.h
deleted file mode 100644
index 4283cf9..0000000
--- a/quiche/epoll_server/platform/api/epoll_export.h
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright 2017 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_EPOLL_SERVER_PLATFORM_API_EPOLL_EXPORT_H_
-#define QUICHE_EPOLL_SERVER_PLATFORM_API_EPOLL_EXPORT_H_
-
-#include "quiche_platform_impl/epoll_export_impl.h"
-
-#endif  // QUICHE_EPOLL_SERVER_PLATFORM_API_EPOLL_EXPORT_H_
diff --git a/quiche/epoll_server/platform/api/epoll_ptr_util.h b/quiche/epoll_server/platform/api/epoll_ptr_util.h
deleted file mode 100644
index 3ad17f4..0000000
--- a/quiche/epoll_server/platform/api/epoll_ptr_util.h
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright 2017 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_EPOLL_SERVER_PLATFORM_API_EPOLL_PTR_UTIL_H_
-#define QUICHE_EPOLL_SERVER_PLATFORM_API_EPOLL_PTR_UTIL_H_
-
-#include <memory>
-
-#include "quiche_platform_impl/epoll_ptr_util_impl.h"
-
-namespace epoll_server {
-
-template <typename T, typename... Args>
-std::unique_ptr<T> EpollMakeUnique(Args&&... args) {
-  return EpollMakeUniqueImpl<T>(std::forward<Args>(args)...);
-}
-
-}  // namespace epoll_server
-
-#endif  // QUICHE_EPOLL_SERVER_PLATFORM_API_EPOLL_PTR_UTIL_H_
diff --git a/quiche/epoll_server/platform/api/epoll_time.h b/quiche/epoll_server/platform/api/epoll_time.h
deleted file mode 100644
index 4c7419b..0000000
--- a/quiche/epoll_server/platform/api/epoll_time.h
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2013 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_EPOLL_SERVER_PLATFORM_API_EPOLL_TIME_H_
-#define QUICHE_EPOLL_SERVER_PLATFORM_API_EPOLL_TIME_H_
-
-#include "quiche_platform_impl/epoll_time_impl.h"
-
-namespace epoll_server {
-
-inline int64_t WallTimeNowInUsec() { return WallTimeNowInUsecImpl(); }
-
-}  // namespace epoll_server
-
-#endif  // QUICHE_EPOLL_SERVER_PLATFORM_API_EPOLL_TIME_H_
diff --git a/quiche/epoll_server/simple_epoll_server.cc b/quiche/epoll_server/simple_epoll_server.cc
index 227089e..eb9d6c4 100644
--- a/quiche/epoll_server/simple_epoll_server.cc
+++ b/quiche/epoll_server/simple_epoll_server.cc
@@ -12,8 +12,8 @@
 #include <algorithm>
 #include <utility>
 
+#include "absl/time/clock.h"
 #include "quiche/epoll_server/platform/api/epoll_bug.h"
-#include "quiche/epoll_server/platform/api/epoll_time.h"
 
 // Design notes: An efficient implementation of ready list has the following
 // desirable properties:
@@ -485,7 +485,9 @@
   DCHECK_EQ(rv, 1);
 }
 
-int64_t SimpleEpollServer::NowInUsec() const { return WallTimeNowInUsec(); }
+int64_t SimpleEpollServer::NowInUsec() const {
+  return absl::GetCurrentTimeNanos() / 1000;
+}
 
 int64_t SimpleEpollServer::ApproximateNowInUsec() const {
   if (recorded_now_in_us_ != 0) {
diff --git a/quiche/epoll_server/simple_epoll_server.h b/quiche/epoll_server/simple_epoll_server.h
index 7aeba67..405e306 100644
--- a/quiche/epoll_server/simple_epoll_server.h
+++ b/quiche/epoll_server/simple_epoll_server.h
@@ -37,7 +37,6 @@
 
 #include <sys/epoll.h>
 
-#include "quiche/epoll_server/platform/api/epoll_export.h"
 #include "quiche/epoll_server/platform/api/epoll_logging.h"
 
 namespace epoll_server {
@@ -122,7 +121,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////////////////
 
-class EPOLL_EXPORT_PRIVATE SimpleEpollServer {
+class SimpleEpollServer {
  public:
   typedef EpollAlarmCallbackInterface AlarmCB;
   typedef EpollCallbackInterface CB;
@@ -1011,7 +1010,7 @@
 // Any classes overriding these functions must either call the implementation
 // of the parent class, or is must otherwise make sure that the 'registered_'
 // boolean and the token, 'token_', are updated appropriately.
-class EPOLL_EXPORT_PRIVATE EpollAlarm : public EpollAlarmCallbackInterface {
+class EpollAlarm : public EpollAlarmCallbackInterface {
  public:
   EpollAlarm();
 
diff --git a/quiche/epoll_server/simple_epoll_server_test.cc b/quiche/epoll_server/simple_epoll_server_test.cc
index 3b64002..ba85038 100644
--- a/quiche/epoll_server/simple_epoll_server_test.cc
+++ b/quiche/epoll_server/simple_epoll_server_test.cc
@@ -24,13 +24,12 @@
 #include <utility>
 #include <vector>
 
+#include "absl/time/clock.h"
 #include "quiche/epoll_server/fake_simple_epoll_server.h"
 #include "quiche/epoll_server/platform/api/epoll_address_test_utils.h"
 #include "quiche/epoll_server/platform/api/epoll_expect_bug.h"
-#include "quiche/epoll_server/platform/api/epoll_ptr_util.h"
 #include "quiche/epoll_server/platform/api/epoll_test.h"
 #include "quiche/epoll_server/platform/api/epoll_thread.h"
-#include "quiche/epoll_server/platform/api/epoll_time.h"
 
 namespace epoll_server {
 
@@ -55,6 +54,8 @@
 ////////////////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////////////////
 
+int64_t WallTimeNowInUsec() { return absl::GetCurrentTimeNanos() / 1000; }
+
 ////////////////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////////////////
 
@@ -1738,7 +1739,7 @@
       break;
     default: {  // Parent will receive message.
       close(writer_pipe);
-      auto ep = EpollMakeUnique<SimpleEpollServer>();
+      auto ep = std::make_unique<SimpleEpollServer>();
       ep->set_timeout_in_us(1);
       EpollReader reader(len);
       ep->RegisterFD(reader_pipe, &reader, EPOLLIN);
@@ -1782,7 +1783,7 @@
   int read_fd = pipe_fds[0];
   int write_fd = pipe_fds[1];
 
-  auto reader = EpollMakeUnique<EpollReader>(len);
+  auto reader = std::make_unique<EpollReader>(len);
 
   // Check that registering a FD for read alerts us when there is data to be
   // read.
