reconstruct views (building some reusable templates) to reduce
boilerplate