It looks like this is here to facilitate retrieval from `active_alarm.js` ([here](https://github.com/oconnore/gaia/blob/650f9fa57992b2953453f08cc38fbf8e75ecfab2/apps/clock/js/active_alarm.js#L147) and [here](https://github.com/oconnore/gaia/blob/650f9fa57992b2953453f08cc38fbf8e75ecfab2/apps/clock/js/active_alarm.js#L182)), but I'm worried that this makes the application more difficult to understand. In some ways, using a singleton like this subverts our application structure. Instead of explicitly passing object references to the views that need them, this changeset uses a global singleton map from `utils.js` to reach out and grab them wherever necessary.

(For what its worth, I kind of feel the same way about the `Panel` organization, but that's a problem for another day.)

I'm wondering if we can avoid defining a Timer singleton altogether. I can think of two alternate approaches:

1. Since we already have a global namespace in the `app` module, and since that module is already required by `active_alarm.js`, I'm wondering if we can avoid this indirection (and the additional global namespace) by attaching Clock's one-and-only `Alarm` instance to the `app` object. This is still a global, but at least it's defined on a module designed for that purpose.
2. We could extend `ActiveAlarm#init` to accept a reference to a `Timer` instance, specify it [when instantiating `ActiveAlarm`](https://github.com/oconnore/gaia/blob/650f9fa57992b2953453f08cc38fbf8e75ecfab2/apps/clock/js/startup.js#L21), then use *that* reference in those places where `ActiveAlarm` needs to interact with the Timer.

What do you think? Am I oversimplifying?