* Introduced two-stage initialization pattern for components that need it, so that we don't have to modify app.js to be compatible with the new code
* Factored out tags