add an extended macros to support more type enum element