templates, interfaces