refactor board to work with row/column headers