change template parameter list from 'class' to typename