begin adding solving logic. add some State code and create functions for modifying the board during the backtracking algorithm