templates, components, and a helper