templating a little more logical