gen and checker
gen