add save functionality to core.Board