Use embedded struct for ripple time
Speed up catch-up
Provide interface to facilitate mocking this library in downstream tests