below uses `gendat` not `gendat0`