if every plugin is going to have this boilerplate, couldn't we just have `template` and `state` fields in the plugins and then default-implement render() to do this? Since we killed inheritance I guess default-implement would be something ad hoc, but it could be done. Or you could actually just wrap this object like `utils.Singleton(AbstractPlugin, { render: ... })` which gives you the ability to have a base class for plugins, while still being a singleton.