added complete support for enums