type gen