I'm still confused with the code.

`popovers` is attached as a public member to the class (`Popover.popovers`), but the class is never exposed publicly (`PopoverHandler` always returns a new `Popover`).

Why make it a public class member only to hide it via `PopoverHandler`?

Also, in other parts of the code (atc) I believe you created a module variable for holding these singleton objects; why the change?

Also, why hide the class by using a `PopoverHelper`?

Why not either add a class-level method on `Popover` called `create` or, since the constructor adds itself to the singleton array of popovers, why not just let the "user" instantiate Popovers themselves (allowing people to subclass, adding their own template, etc)?