template functions

functions whose functionality can be adapted to more than one type or class without repeating the entire code for each type.