improve gen