refactored, moved I/O out of Board, created Driver to handle I/O and run application