finished template class