add GCJ sovling template class