Added a first version of the template class