ignore case for Enum
add context
add properties transformer
add optional annotation to be used instead of property name convention