a template class that follows the prototype pattern