split board.py into pieces and test for them