add template set of functions