refactored some of the board logic to the cell