Added a board struct and some related functions and tests. Includes a custom error type in order to better understand interfaces.