Extracted methods from board class into template class and integrated inheritance