abstract html/template dependency