cleaned/added features to some timing stuff
diff --git a/aos/common/control_loop/Timing.cpp b/aos/common/control_loop/Timing.cpp
index 6db179c..3a58036 100644
--- a/aos/common/control_loop/Timing.cpp
+++ b/aos/common/control_loop/Timing.cpp
@@ -9,12 +9,11 @@
 namespace time {
 
 void PhasedLoopXMS(int ms, int offset) {
-  // TODO(brians): Rewrite this cleaner.
   // TODO(brians): Tests!
-  int64_t period_nsec = Time::InMS(ms).nsec();
-  SleepUntil(Time::InNS((Time::Now().ToNSec() / period_nsec +
-                         static_cast<int64_t>(1)) * period_nsec +
-                        Time::InUS(offset).ToNSec()));
+  const Time frequency = Time::InMS(ms);
+  SleepUntil((Time::Now() / frequency.ToNSec()) *
+             frequency.ToNSec() +
+             frequency + Time::InUS(offset));
 }
 
 }  // namespace timing