Re-Implement the timer using new view

This is much cleaner, and has better separation of concerns.
Now I need to ensure it's performant when integrated with the
rest of the system.