Finished refactoring to allow arbitrary game board size