views and templates are now built out of components