template definition is not in .h file