Board methods return new objects, no longer mutate state.