more templatizing