better template parameter names