diff --git a/frc971/constants.cc b/frc971/constants.cc
index 4fea843..bf07022 100755
--- a/frc971/constants.cc
+++ b/frc971/constants.cc
@@ -41,9 +41,7 @@
 const double shooter_zeroing_off_speed = 0.0;
 const double shooter_zeroing_speed = 0.1;
 
-const Values *DoGetValues() {
-  uint16_t team = ::aos::network::GetTeamNumber();
-  LOG(INFO, "creating a Constants for team %" PRIu16 "\n", team);
+const Values *DoGetValuesForTeam(uint16_t team) {
   switch (team) {
     case 1:  // for tests
       return new Values{
@@ -154,6 +152,12 @@
   }
 }
 
+const Values *DoGetValues() {
+  uint16_t team = ::aos::network::GetTeamNumber();
+  LOG(INFO, "creating a Constants for team %" PRIu16 "\n", team);
+  return DoGetValuesForTeam(team);
+}
+
 }  // namespace
 
 const Values &GetValues() {
@@ -161,5 +165,9 @@
   return *once.Get();
 }
 
+const Values &GetValuesForTeam(uint16_t team_number) {
+  return *(DoGetValuesForTeam(team_number));
+}
+
 }  // namespace constants
 }  // namespace frc971
