TODO:  default template parameter for functions