enum overhaul