use unordered_map for "string-enum" translations.
rename the private member.
use malloc instead of calloc and rename functions.