more work on the ui, using an angular $interval for clarity