diff --git a/y2019/constants.cc b/y2019/constants.cc
index 043624d..5466ce2 100644
--- a/y2019/constants.cc
+++ b/y2019/constants.cc
@@ -11,7 +11,7 @@
 #include "aos/logging/logging.h"
 #include "aos/mutex/mutex.h"
 #include "aos/network/team_number.h"
-#include "aos/once.h"
+#include "absl/base/call_once.h"
 #include "y2019/control_loops/superstructure/elevator/integral_elevator_plant.h"
 #include "y2019/control_loops/superstructure/intake/integral_intake_plant.h"
 #include "y2019/control_loops/superstructure/stilts/integral_stilts_plant.h"
@@ -230,17 +230,19 @@
   return r;
 }
 
-const Values *DoGetValues() {
+void DoGetValues(const Values** result) {
   uint16_t team = ::aos::network::GetTeamNumber();
   AOS_LOG(INFO, "creating a Constants for team %" PRIu16 "\n", team);
-  return DoGetValuesForTeam(team);
+  *result = DoGetValuesForTeam(team);
 }
 
 }  // namespace
 
 const Values &GetValues() {
-  static ::aos::Once<const Values> once(DoGetValues);
-  return *once.Get();
+  static absl::once_flag once_;
+  static const Values* result;
+  absl::call_once(once_, DoGetValues, &result);
+  return *result;
 }
 
 const Values &GetValuesForTeam(uint16_t team_number) {
