let it be public (could be redefined) and private templates
add description and example for abstract templating