using c++ templates for boards