add template class
add base encoding