added board.  some refactoring