added cpp class template