why isn't this a typedef enum?