enums and partial structs