Added a lot of documentation to board.py