Create class templates  and template functions