supporting generic field types and attributes interfaces