Split into a generation tool and a display tool.