Board refactor

Start the cleanup for the board abstraction.