added function template