using field name and type instead of field def