add better solutions for templating