using template inheritance to cut out boilerplate and separating view
and template a little bit more