factor out majority of board template so current board doesn't need to be recomputed