generic field def