altered:
 - get function name
 - the defintion format for enum type
 - the usage of constant strings