put in interface for templates
make some nesting possible