template function instantiations wip