separated generate and render for board