field generation hook listener