update enums with stronger typing, add  IntEnum