implement new board function