first pass at templating