changed some class names
add the template class