added full support for enums